VBA~ユーザーフォームのコンボボックスで選択したデータを取得しよう~Excel
ユーザーフォームのコンボボックスで選択したデータや新たに入力したデータを取得するにはTextプロパティで取得します。
書き方
オブジェクト名.Text
オブジェクト名はユーザーフォームのオブジェクト名と、コンボボックスのオブジェクト名を指定します。オブジェクト名の確認方法は作成したユーザーフォームファイルをクリックするとユーザーフォームが表示されます。ユーザーフォーム全体を選択するとプロパティウィンドウにオブジェクト名という項目があるので、それがユーザーフォームのオブジェクト名になります。次にコンボボックスを選択すると同じようにコンボボックスのオブジェクト名が確認できます。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。
例えばコンボボックスでユーザー側で選択したデータや新たに入力したデータをコマンドボタン等を押した時の処理に活用することができます。UserForm1というユーザーフォームにComboBox1というコンボボックスを作成した場合、ユーザーフォームのファイルをクリックするとユーザーフォームが開きます。
ツールボックスの下段のabマーク(コマンドボタン)をクリックしユーザーフォームのコマンドボタンを表示したい箇所でクリックするとコマンドボタンが設定さます。コマンドボタンを選択した状態でもう一度クリックすると入力カーソルが表示されるのでOKに書き換えます。
コマンドボタンをダブルクリックすると下のコードが表示されます。
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