OfficeType

VBA~ユーザーフォームのコンボボックスで選択したデータを取得しよう~Excel

ユーザーフォームのコンボボックスで選択したデータや新たに入力したデータを取得するにはTextプロパティで取得します。

書き方

オブジェクト名.Text

オブジェクト名はユーザーフォームのオブジェクト名と、コンボボックスのオブジェクト名を指定します。オブジェクト名の確認方法は作成したユーザーフォームファイルをクリックするとユーザーフォームが表示されます。ユーザーフォーム全体を選択するとプロパティウィンドウにオブジェクト名という項目があるので、それがユーザーフォームのオブジェクト名になります。次にコンボボックスを選択すると同じようにコンボボックスのオブジェクト名が確認できます。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。

例えばコンボボックスでユーザー側で選択したデータや新たに入力したデータをコマンドボタン等を押した時の処理に活用することができます。UserForm1というユーザーフォームにComboBox1というコンボボックスを作成した場合、ユーザーフォームのファイルをクリックするとユーザーフォームが開きます。

image-01

ツールボックスの下段のabマーク(コマンドボタン)をクリックしユーザーフォームのコマンドボタンを表示したい箇所でクリックするとコマンドボタンが設定さます。コマンドボタンを選択した状態でもう一度クリックすると入力カーソルが表示されるのでOKに書き換えます。

image-02

image-03

image-04

image-05

image-06

コマンドボタンをダブルクリックすると下のコードが表示されます。

Private Sub CommandButton1_Click()

End Sub

ここに処理内容を書き込めばコマンドボタンをクリックしたときの処理を設定できます。今回は下のコードにコマンドボタンをクリックするとコンボボックスからユーザーが選択したデータをセルA1に表示する処理を書き込みました。

Private Sub CommandButton1_Click()

Range("A1") = ComboBox1.Text
Unload UserForm1

End Sub

UserForm1というユーザーフォームを作成し、ComboBox1というコンボボックスを設定した場合、VBAで下のコードを実行するとコンボボックスが表示されユーザーがデータを選択したり新たに入力しOKを押すとセルA1にデータが表示されます。

Sub test1()

Load UserForm1
UserForm1.ComboBox1.additem "織田信長"
UserForm1.ComboBox1.additem "豊臣秀吉"
UserForm1.ComboBox1.additem "徳川家康"
UserForm1.Show

End Sub

image-07

image-08

image-09

image-10

image-11

image-12