VBA講座2-1では、ユーザーフォームにコンボボックスを設置しました。コンボボックスは予め設定した値から選択するコントロールでしたね。

 

ではどのようにしてコンボボックスに値を読み込ませるのか?

 

これを今回と次回の講座で行っていきます。

 

第2章の冒頭でもお話しましたが、新規登録画面のコードさえ理解できれば、あとは結構すんなりといくと思いますので、ぜひ頑張ってついてきて下さいね。

 

それでは早速いきましょう。

ユーザーフォームを閉じるコードの復習

早速コードを書いていきますが、まずは復習です。

vba2-3-1閉じるボタンをダブルクリックしてください。ユーザーフォームを閉じるコードは何でした?

 

vba2-3-2そう、「Unload Me」ですね。VBA講座1-7でやりました。

 

Private Sub btnClose_Click()の下の行に小文字で「unload me」と入力、その後に↓キーを押すと自動的にuとmがそれぞれ大文字に変換されます。

 

閉じるボタンのコードはこれで終了です。

UserForm_Initializeとは?

vba2-3-3次にコンボボックスを見て下さい。

 

採用区分と単位ですが、採用区分は「あり」「なし」単位には「錠」、「g」、「枚」、「キット」などを入れたいと思います。

 

入力者が自分で考えて入力するのではなく、システム作成者が用意した選択肢から選ぶ、といった形を取りたいわけですね。

 

そういう時に使うのがコンボボックスです。ではどのようにすればいいのか。

 

具体的には候補を予め用意して、フォームが開いた時にその候補を読み込ませるという事をします。

 

それではコード画面を開きましょう。

 

vba2-3-4左側のプロジェクトのフォーム内のfrmDRegisterで「右クリック→コードの表示」をクリックします。

 

vba2-3-5先ほど入力したコードが表示されました。今はこのコードしか表示されていませんね?

 

それでは、上のbtnCloseと表示されている場所の右側に下向きの矢印がありますね。

 

それをクリックすると、配置したコントロールが下にずら~っと並びます。今回は一番下のUserFormを選択しましょう。

 

vba2-3-7新しいコードが出てきましたが、とりあえずこれは無視して下さい。

 

vba2-3-8次に右上のClickと表示されている部分の右側の下向き矢印をクリックします。

 

先ほどと同じように配置したコントロールが表示されます。上から5つ目のInitializeを選択しましょう。

 

vba2-3-9下に更に新しいコードが出てきました。こちらを使用します。

Private Sub UserForm_Click()

End Sub

これはいらないので削除して下さい。普通にBackSpaceかDeleteキーで消してください。

 

では使用するコードの解説をします。

Private Sub UserForm_Initialize()

End Sub 

initializeは初期化するという意味です。「UserFormを初期化する≒フォームを新しく読みこむ」

 

ザックリいうと、「ユーザーフォームを開いた時に○を実行する」と覚えて頂いてOKです。

 

これは頻繁に使用するコードなので、「Unload Me」と一緒にぜひ覚えて下さいね!

 

それでは今回はここで終了です。お疲れ様でした。

 

次回はコンボボックスに読み込ませる値をワークシートに入力していきます。