• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA コンボボックスのコード記述位置について)

コンボボックスのコード記述位置について

このQ&Aのポイント
  • コンボボックスのコードを記述する位置について質問します。初心者なので、お恥ずかしいですが、コンボボックス用のコードは「Private Sub UserForm_Initialize()」の下にしか記述できないのでしょうか?例えば、縦長のユーザーフォームにコンボボックス1、コマンドボタン、コンボボックス2がある場合、コンボボックス1の処理、コマンドボタンの処理、コンボボックス2の処理と、順番通りに記述することはできるのでしょうか?
  • コンボボックスに関するコードの記述位置について質問です。初心者のため、申し訳ありませんが、コンボボックスのコードは「Private Sub UserForm_Initialize()」の下にしか記述できませんか?例えば、縦長のユーザーフォームにコンボボックス1、コマンドボタン、コンボボックス2が配置されている場合、コンボボックス1の処理、コマンドボタンの処理、コンボボックス2の処理と、その順番でコードを記述することはできるのでしょうか?
  • コンボボックスのコード記述位置について教えてください。初心者で恥ずかしいのですが、コンボボックス用のコードをどこに記述すれば良いのか分かりません。「Private Sub UserForm_Initialize()」の下にしか書けないのでしょうか?例えば、縦長のユーザーフォームに上から順にコンボボックス1、コマンドボタン、コンボボックス2が配置されている場合、コンボボックス1の処理、コマンドボタンの処理、コンボボックス2の処理の順に記述することはできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • uruz
  • ベストアンサー率49% (417/840)
回答No.1

>本当であれば、下記のように順番通りに記述したいです。 プロシージャ(sub , function)の中に別のプロシージャを置くことはできません。 どうしても順番に記述したいのであれば可能ですが、順番に記述することの意義はないと私は思います。 見やすくするため全角スペースでイデントしています Private Sub UserForm_Initialize()  SetCommbo1  SetCommbo2 End Sub Private Sub SetCommbo1()  With ComboBox1   .AddItem "赤色"   .AddItem "青色"   .AddItem "黄色"  End With End Sub Private Sub CommandButton1_Click()  MsgBox "テスト" End Sub Private Sub SetCommbo2()  With ComboBox2   .AddItem "緑色"   .AddItem "黒色"   .AddItem "紫色"  End With End Sub

vba00
質問者

お礼

なるほど、こんな方法があるのですね。 「出来ないのかも」と思っていたのですが詳しい方は様々な方法をご存じだ…。 確かにご教示頂いたコードですと逆に時間がかかってしまいそうなので、今まで通り進めてみます。 (せっかく直して頂いたのにすみません) 「セットして呼び出す」という新たな知識も頂戴できて、大満足です。 ありがとうございました!

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

コマンドボタンの代わりに Form_Load() イベントを使って Private Sub Form_Load() MsgBox "テスト" UserForm_Initialize End Sub Private Sub UserForm_Initialize() With ComboBox1 .AddItem "赤色" .AddItem "青色" .AddItem "黄色" End With With ComboBox2 .AddItem "緑色" .AddItem "黒色" .AddItem "紫色" End With End Sub

vba00
質問者

お礼

Form_Load() イベント… 初めて知りました。勉強になります。 ご教示、ありがとうございました!

関連するQ&A

専門家に質問してみよう