「Frame6」BA1~BC1複数選択 ActiveSheet.Paste 'コピーした部分を貼り付けています。 2行目 あいう      かきく      さしす       1 当方はExcel2013で、情報のみを管理しているシートを開いて、そこの表をコピーしてマクロ側に貼付け使用するという質問者様と逆のことをしていますが、その際に使っているつたないマクロを下記に載せておきます。     Next With tSh Dim tSh As Worksheet     Exit Sub Private Sub 確定保存_Click() キャプションか番号か? Worksheets(5).Select         v = True 「Frame7」BD1~BE1複数選択 If Dir(p) <> "" Then お助け下さい m(__)m こんなことができるのでしょうか? Application.ScreenUpdating = True Dim j As Long tBk.Close おかげさまで動作させたいことに対する全体像のロジックが少し理解できました。 hyoubook = Left(ThisWorkbook.Path, 5) & "\" & datbook 'こちらの用途のままです。 オプションボタンの選択値とは何ですか? (8)もし、オプションボタン(キャプション)の未選択やテキストボックスの未入力があった場合は、入力を促すメッセージを表示させる。 「Frame5」AV1~AZ1複数選択 .Cells(j + 1, "D") = Me.TextBox.Text       MsgBox "オプション選択無し" n = 19 Else Page1 ボタンコマンドの最初の行でメッセージボックスにnの値を表示して確認しても何も数字が表示されません。 (1)A1のセルに1と入力されている状態でマクロを起動した場合、 VBAの処理内容を新Sheetへ保存し、 Worksheets(5).Select Worksheets(2).Activate 頂戴したご回答アドバイスも一つの事例としての構文も参考にさせて頂きました。   End If その行は1で終了で今後足していきません。他の行に移ります。 このように、チェックボックスにチェックがあった数だけ、テキストボックスも 「ユーザーフォーム.xlsm」と「ご意見箱.xlsx」の両ファイルは、「デスクトップ」上に置いております。 これをA,B,Cのファイルを使用したまま 下記のような動作をさせるべく、イベントの構文で記述しました。 ご質問にございました、オプションボタンの選択値は、キャプションになります。 MsgBox "所属部署を選択して下さい。m(_ _)m" C1にテキストボックスで「#1」、D1に「#2」(記入ない場合有り)、F1に「#3」(記入ない場合有り)、H1にチェックボックス#4(選択ない場合有り)。 この状態でコマンドボタンをクリックすると、Sheet1には Workbooks(datbook).Close   Set tSh = tBk.Worksheets("Sheet1")   If Dir(p) <> "" Then (1)ユーザーフォーム画面上で該当するオプションボタン(キャプション)一つを選択し、テキストボックスにテキストを入力して 選択した「1の行」のC1をクリックしたときにユーザーフォームを起動させて入力しその行のセルに、数字の1を反映させたいと思っています。   Else On Error GoTo エラー処理 tBk.Save .Cells(j + 1, "A") = .Cells(j, "A") + 1 如何せん私もVBA歴が浅いので、勉強になりました。 .Cells(j + 1, "C") = i 'Me.Controls("OptionButton" & i).Caption ~現状で困っている点~ (6)C列の最終行(新規行)にオプションボタン(キャプション)内容を反映させ、D列も同じく最終行(新規行)にテキストボックスの内容を反映させて 「Frame3」AL1、AM1、AN1で、オプションボタン一つ必ず選択。 (adsbygoogle = window.adsbygoogle || []).push({}); 上記のコードを順番に解説していきます。ちなみに自分がこのコードを確認した環境は「Excel2013」です。, まず前提としては、デスクトップ上に「AAA」エクセルファイルと「BBB」エクセルファイルの2つのブックがあるとします。, 上記のコードは「BBB」エクセルファイルの標準モジュールに記述しており、「BBB」エクセルファイルから「AAA」エクセルファイルにあるフォームモジュールの「UserFormA」を操作するというものです。, まず、上記のコードの2行目で「AAA」エクセルファイルのパス格納用の変数pを宣言、3行目で「AAA」エクセルファイルを格納するためのオブジェクト変数wbを宣言します。, 5行目の「p = “C:\Users\user\Desktop\AAA.xlsm”」で変数pに「AAA」エクセルファイルがある場所のパスを格納します。, 6行目の「Set wb = Workbooks.Open(p)」で「AAA」エクセルファイルを開いて、それをオブジェクト変数wbに格納します。, 8行目の「wb.VBProject.VBComponents(“UserFormA”).Designer.Controls(“textbox1”).Value = “テスト”」では、まず「AAA」エクセルファイルのVBProjectオブジェクトを操作します。, 「VBProject.VBComponents」というコードですが、このコードを使用すると場合によっては「Visual Basic~信頼性に~」といったエラーが出てしまうときがあるかと思います。, このような時は、エクセルを開いた画面からファイルタブを選択、そこから、オプション→セキュリティセンター→セキュリティセンターの設定→マクロの設定まで進みます。, その画面の開発者向けのマクロ設定の項目で「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する(V)」にチェックを入れます。これで「VBProject.VBComponents」を使う場合のエラーは出なくなるかと思います。, このVBProjectオブジェクトは一般的には「VBEを操作する」という風に言われたりしますが、VBEの画面の左上にあるプロジェクトエクスプローラの部分を見るとわかりやすいかと思います。, 「VBAProject(~)」とか「フォームモジュール」「シートモジュール」「標準モジュール」などがあるところです。この部分を操作すると考えるとイメージしやすいのではないでしょうか。, 「VBProject」はそのエクセルファイルにある各モジュールがまとめられている所で、VBComponentsでその中の構成要素の一つ(例えば標準モジュールとかフォームモジュール)を取得できるというイメージになるかと思います。, 次の「Designer」というコードですが、インターネットで調べても詳しく書いてある所をなかなか見つけられなくて、VBEのオブジェクトブラウザで調べた所、次のように表示されました。, 「IHTMLEditDesigner」をインターネットで調べてみてもイマイチよくわからなくて「MSHTML」を調べてみたら「Trident」について多く表示されました。ちなみにWikipediaには以下のように書かれています。, Trident (トライデント)は Internet Explorer に搭載されている HTML レンダリング エンジンの名称で、ライブラリ ファイルの名称から MSHTML とも呼ばれている。, Internet Explorer 4.0 より導入されたもので、Windows 向けではアップデートを重ねているが、Macintosh 向けの Internet Explorer for Mac は次のバージョンの 5.0 で Tasman に置き換えられた。Internet Explorer 7 とそれ以降に含まれるバージョンではウェブ標準に準拠するように開発されている。, Trident はソフトウェア開発者が自分のソフトウェアにウェブ ブラウズ機能を容易に追加できるよう、ソフトウェア コンポーネントとして設計されている。, う~ん・・・。これも難しくてよくわかりませんが、Webページをつくるための道具、といった感じでしょうか。, いろいろと試行錯誤してみましたが、とにかくこの「Designer」という部分がないと他のブックのユーザーフォームのコントロールは操作できませんでした。, この後の「.Controls(“textbox1”).Value = “テスト”」はUserFormAフォームモジュールに設定されているtextbox1というオブジェクト名のテキストボックスに「テスト」という値を入れる、という意味になります。, 「Designer」の後に「.Controls(“textbox1”).Value = “テスト”」と繋げないとテキストボックスを操作できません。, 「MsgBox wb.VBProject.VBComponents(“UserFormA”).Designer.Controls(“CommandButton1”).Caption」ですが、「AAA」エクセルファイル内にあるUserFormAの中のコマンドボタンに表示されているキャプションをメッセージボックスで表示するというものです。, 11行目の「Application.Run “AAA.xlsm!フォームを開く”」は、「AAA」エクセルファイル内にあるUserFormAを表示するマクロを実行するというものです。, 「Application.Run」を使うことで別ブックのマクロを実行することができます。ポイントとしては、”(ダブルクォーテーション)で囲む必要があるということです。, 「フォームを開く」というのは、「AAA」エクセルファイル内にあるフォームを開くためのプロシージャ名です。実際にフォームを表示させるには、この中に「UserFormA.Show」といったように別途コードを入れておく必要があります。, 12行目の「Application.Run “AAA.xlsm!コマンドボタンクリック”」は次の項の操作先ファイルのコードで説明しますが、「AAA」エクセルファイルで開いたフォームに設置したコマンドボタンのクリックイベントを実行するコードです。, 以上が「ExcelVBAで別ブックのユーザーフォームを操作する方法」のコードの操作元ファイルで必要なコードの説明になります。, 先程書いたのが操作元ファイル(BBB.xlsm)のコードで、ここでは操作先ファイル(AAA.xlsm)のコードの説明に入ります。結論としては以下のコードが必要になります。, 標準モジュールの「コマンドボタンクリック」プロシージャでフォームモジュールのCommandButton1_Clickの処理を実行するという流れです。フォームモジュールに入力したコードでポイントがひとつあります。, 1行目、「Sub CommandButton1_Click()」のSubの前に「Private」を入れると「コマンドボタンクリック」プロシージャでCallしても受け付けてくれません。, フォームモジュールでコマンドボタンなどのコントロールを設置すると、基本的にはPrivateが入ったクリックイベントのコードが自動で作成されてしまいます。ですので、標準モジュールからのCallで動作させられるように忘れずに削除する必要があります。, なぜこのような順番にしたかというと、操作元ファイルからのクリックイベントは直接は操作できなかったからです。例えば次のようなコードだと動作しません。, Application.Runは基本的には「マクロ」じゃないと動作しないようなので、Excelからするとクリックイベントは違うという認識なのでしょう。, 以上のことから、フォームモジュールの「MsgBox “メッセージ”」の部分を適宜必要な処理を実行できるコードに変更すれば「ExcelVBAのDesignerで別ブックのユーザーフォームを操作する」ことができます。, 今回のコードを見つけるのはなかなか大変でした。Googleで他のエクセルファイルのユーザーフォームを操作する方法について検索してみても「Application Run~」という風に、他のエクセルファイルのマクロを実行するためのコードはたくさん見つけることは出来ます。, けれども、他のエクセルファイルにあるユーザーフォームを操作する方法はなかなか見つかりませんでした。どうすればこのコードを見つけられるか考えた所、エクセルの「オブジェクト構造」を考えれば良いかもしれないと思いました。, 例えばエクセルの特定のブックの特定のシートの特定のセルを参照するためには以下のようなコードを書くと思います。, Workbooks(“A”).WorkSheets(“B”).Range(“A1”).value, このように他のエクセルファイルも参照できるようなコードを書けば、そのファイルにあるユーザーフォームも操作できるはず、と考えました。, しかし現実は厳しいもので、例えば以下のコードのようにいろいろ試行錯誤はしてはみました。, Workbooks(p).UserForm1.Controls(“textbox1″).value=”テスト”, 上記のような感じのコードを手を変え品を変え延々と打ち込んではみたのですが、うんともすんとも言わず、画面には無常にも黄色のラインとエラーのメッセージが表示され続ける状態でした。, 「自分のイメージではなくて、ちゃんとしたエクセルのオブジェクト構造を確認するべき」だと考え直してインターネットで調べてはみたのですが、これもユーザーフォームを操作できる所まで書かれたものは見つけることが出来ませんでした。, あーでもないこーでもないといろいろとコードをいじっている内に、とある事に気づきます。「そういえば、VBEのプロジェクトエクスプローラの部分て階層構造っぽいな」と。, なぜここに気づいたかというと、今回の動作を実行するとなると二つのエクセルファイルのモジュールを見比べたり、行ったり来たりする必要があったので必然的にこの部分を見ていたからです。, ですから「VBAProject」とか、この部分のコードがあるんじゃないかと思いました。調べてみるとVBProjectとかVBComponentsというコードが見つかり、「おっ、これはいけるかもしれない!」と思ったのですが、また壁が立ちはだかります。, wb.VBProject.VBComponents(“UserFormA”).Controls(“textbox1”).Value = “テスト”, 何が足りないかというと「Designer」というコードです。今だからこれがあれば動作するとわかります。ですがこれに気づく前は、まさかこんなコードが必要だとは夢にも思っていなかったので偶然にもこのコードを見つけて動作した時は本当に驚きました。, 「これはいけるか?」と思ったらまた壁が立ちはだかります。長くなるのでここで割愛しますが、この後もSendkeysを使ったりPowerShellを試してみたり、そもそもフォームを表示させる必要があるのか?と考えたりもしました。, このブログでは自分がさせたい動作のコードを見つけるまでに四苦八苦してきたことをいろんな所で書いてきましたが、今回の件でAccessとかOutlookだけではなくてExcelでもオブジェクト構造の理解は必要なんだなと感じました。, 別に注意点というわけでもないのですが、今回のコードはユーザーフォームを表示しなくても必要な処理を実行出来ます。, つまり、今回使った「Application.Run “AAA.xlsm!フォームを開く”」でフォームを表示しなくても, 「Application.Run “AAA.xlsm!コマンドボタンクリック”」だけで必要な処理を実行できるということです。, とりあえず「こういうこともできる」という自分への確認の意味で、今回のようなコードの形にしてみました。, もっと良い方法はたくさんあるとは思いますが、いろんなやり方のひとつとして見ていただければと思います。. Application.DisplayAlerts = False '警告非表示   選択肢ウィンドウが現れ選択したほうのユーザーフォームが開く     MsgBox "ご意見箱.xlsx 無し" datbook = "ご意見箱.xlsx" v = False ユーザーフォームの画面構成と反映先となる「ご意見箱.xlsx」ファイルの「sheet1」の構成イメージ図は、画像添付のとおりとなっております。     Exit Sub ExcelVBAで別ブックのユーザーフォームを操作するためのコード(操作元ファイル), ExcelVBAで別ブックのユーザーフォームを操作するためのコード(操作先ファイル), ExcelVBAとTransferTextを使ってAccessにCSVを取り込ませる方法, ExcelVBAのOLEObjectsでシート上のActiveXコントロールを使用不可にする方法, ExcelVBAのShapesとIf文でシート上のフォームコントロールを無効にする方法, ExcelVBAでシートのActiveXコントロールの文字色と背景色を変更する方法, ExcelVBAで外部アプリ操作やクラスモジュールのコードが見つからない問題の考察.     .Cells(j + 1, "A") = .Cells(j, "A") + 1   Dim tSh As Worksheet それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? S = Selection.Address 'ここら下はこちらの環境依存です。 End If ユーザーフォームのテキストボックス・コンボボックスに入力した文字列をコマンドボタンを押したら、セルC1・B1に反映させたいのですが、できません。     MsgBox "テキスト 無し" (5)A列の最終行(新規行)の「No.」欄に自動で連番を入力させて チェックボックス1から10のうち、「1」「2」「3」にチェック。 ユーザフォームの『コントロールの追加』で「Microsoft Office Spreadsheet XX.X」を追加して Copyright © 2015-2020 知識の倉庫の整理 All Rights Reserved.     A列       B列       C列        D列

マッチングアプリ 追撃 怖い 19, さそいの扉 テリワン Gb 6, アメリカ人 遊び人 特徴 7, 退職祝い 母 食事 6, クラウンハイブリッド エンジン かからない 4, 名探偵コナン 紺青の拳 動画 フル 7, アルパイン Iphone ミラーリング 無線 6, 副甲状腺機能亢進症 手術 ブログ 4, 平安時代 貴族 宴 28, 室 井佑 月 花田優一 動画 4, 未読無視 男 2日 20, あつ森 Qrコード 帽子 9, フォートナイト プロ 画面設定 9, 楽天モバイル 子供 制限 4, 車 ドライブレコーダー 配線隠し 4, 犬 結石 サプリ 5, テレビ 買い替え Nhk解約 41, みねうち ポケモン Bw2 9, 黒い 砂漠 イナハ 6, Cozy Room 意味 4, ドア クローザー Nhn D4x16 4, 柴犬 有名 犬舎 4, 東京 喰 種 アニメ動画 Ova 7, タップル プロフィール 星マーク 7, Oracle 一時表領域 解放 タイミング 5, 86 トルセンデフ オイル 6,