- ベストアンサー
コンボボックスのコード記述位置について
- コンボボックスのコードを記述する位置について質問します。初心者なので、お恥ずかしいですが、コンボボックス用のコードは「Private Sub UserForm_Initialize()」の下にしか記述できないのでしょうか?例えば、縦長のユーザーフォームにコンボボックス1、コマンドボタン、コンボボックス2がある場合、コンボボックス1の処理、コマンドボタンの処理、コンボボックス2の処理と、順番通りに記述することはできるのでしょうか?
- コンボボックスに関するコードの記述位置について質問です。初心者のため、申し訳ありませんが、コンボボックスのコードは「Private Sub UserForm_Initialize()」の下にしか記述できませんか?例えば、縦長のユーザーフォームにコンボボックス1、コマンドボタン、コンボボックス2が配置されている場合、コンボボックス1の処理、コマンドボタンの処理、コンボボックス2の処理と、その順番でコードを記述することはできるのでしょうか?
- コンボボックスのコード記述位置について教えてください。初心者で恥ずかしいのですが、コンボボックス用のコードをどこに記述すれば良いのか分かりません。「Private Sub UserForm_Initialize()」の下にしか書けないのでしょうか?例えば、縦長のユーザーフォームに上から順にコンボボックス1、コマンドボタン、コンボボックス2が配置されている場合、コンボボックス1の処理、コマンドボタンの処理、コンボボックス2の処理の順に記述することはできるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>本当であれば、下記のように順番通りに記述したいです。 プロシージャ(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
その他の回答 (1)
- chayamati
- ベストアンサー率41% (260/624)
コマンドボタンの代わりに 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
お礼
Form_Load() イベント… 初めて知りました。勉強になります。 ご教示、ありがとうございました!
お礼
なるほど、こんな方法があるのですね。 「出来ないのかも」と思っていたのですが詳しい方は様々な方法をご存じだ…。 確かにご教示頂いたコードですと逆に時間がかかってしまいそうなので、今まで通り進めてみます。 (せっかく直して頂いたのにすみません) 「セットして呼び出す」という新たな知識も頂戴できて、大満足です。 ありがとうございました!