VBA ユーザーフォームの作り方

Tag:

VBAにはユーザーフォームという仕組みがあります。
フォーム上にボタン、テキストボックスなどを配置して様々な操作をすることができます。
ここでは、ユーザーフォームの基本的な使い方について説明します。

フォームを表示させる

さっそくフォームを作成し、表示させてみましょう。

まずは、メニューバーの[挿入]-[ユーザフォーム]をクリックします。
vba form1-1

すると「UserForm1」という名前のフォームが作成されます。
vba form1-2

次に、この「UserForm1」をExcel上に表示させましょう。次のコードを記述して実行させてみてください。

Sub フォーム表示()
    UserForm1.Show
End Sub

実行させると「UserForm1」が表示されます。
vba form1-3

コントロールの配置

ボタンやテキストボックスなどの部品をコントロールと呼びます。
コントロールを配置するにはツールボックスを利用します。
vba form2-1

ツールボックス上から利用したいコントロールを選択し、ユーザフォーム上にドラッグすることでコントロールが挿入されます。ここでは、TextBoxとCommandButtonを挿入してみました。
vba form2-2

挿入したコントロールの色、幅などは「プロパティウィンドウ」で編集することができます。
vba form2-3

イベントプロシージャの作成

TextBoxとCommandButtonが挿入されたフォームが完成しました。
では次に、CommandButtonが押されたらTextBoxの内容をセルに書込むという処理を作ってみましょう。

「ボタンが押されたら」などの “きっかけ” をイベントと呼びます。
イベントを契機に実行されるプロシージャをイベントプロシージャと呼びます。

イベントプロシージャを作るには、まず次のように「UserForm1」上で右クリックして「コードの表示」をクリックします。
vba form3-1

すると、UserForm1に関わるコードを記述するためのウィンドウに切り替わります。
今回は、ボタンの動作に関わる処理を作成するので「CommandButton1」を選択します。
vba form3-2

すると、横のプルダウンでボタンに関わるイベントを選択できるようになります。
今回は、クリックされたときの処理を記述したいので「Click」を選択します。
vba form3-3

処理の内容は次のようにします。

Private Sub CommandButton1_Click()
    Cells(1, 1) = TextBox1.Value
End Sub

実行させてみましょう。
vba form3-4
クリックされたことをきっかけとして処理が動作し、テキストボックスの内容がセル上に記述されています。

スポンサーリンク