5、VBAによるマクロの作成(応用編)

5−4、ユーザーフォームを使う


ユーザーフォームの作り方と利用例を紹介します。

 

 

  【ユーザーフォームの作り方】

  1. VB Editorを起動し、「挿入」メニューから「ユーザーフォーム」を選択します。
        
     
  2. フォーム上に「ラベル」を配置します。
    「ツールボックス」の「ラベル」ツールをクリックし適当な位置(下図参照)にドラッグし、配置します。これを3つ作成します。

     
    この「ラベル」(Label1〜Label3)のテキストを以下のように変更します。

     
    フォントのサイズを変更するには、「プロパティ」の「Font」をクリックし、次に右側の「...」をクリックすると、設定ウィンドウが表示されます。
      
     
  3. 次に「テキストボックス」を配置します。「ツールボックス」の「テキストボックス」ツールをクリックし、適当な位置(下図参照)にドラッグし、配置します。これを2つ作成します。

     
  4. 次に「コンボボックス」を配置します。「ツールボックス」の「コンボボックス」ツールをクリックし、適当な位置(下図参照)にドラッグし、配置します。

     
  5. 次に「コマンドボタン」を配置します。「ツールボックス」の「コマンドボタン」ツールをクリックし、適当な位置(下図参照)にドラッグし、配置します。これを2つ作成します。

     
    手順2の「ラベル」と同様、ボタン上のテキストとサイズを以下のように変更して下さい。

     
  6. このように作成できれば完成です。

 

 

  1. 「プロジェクト」ウィンドウから「UserForm1」をクリックし、「コードの表示」ボタンをクリックします。
      
     
  2. コードを記述するシート「UserForm1(コード)」が表示されるので、そこに以下の3つのコードを記述してください。
     
     
    Private Sub UserForm_Initialize()
      With ComboBox1
        .AddItem "男"
        .AddItem "女"
      End With
    End Sub

     
    Private Sub CommandButton1_Click()
      n = 1
      Do
        n = n+1
      Loop While Cells(n,1) <> ""
      Cells(n,1) = UserForm1.TextBox1.Text
      Cells(n,2) = UserForm1.TextBox2.Text
      Cells(n,3) = UserForm1.ComboBox1.Text
      Unload Me
    End Sub
     
    Private Sub CommandButton2_Click()
      Unload Me
      End
    End Sub
     

【各コードの解説】

◎「UserForm_Initialize」の解説

◎「CommandButton1_Click」の解説

◎「CommandButton2_Click」の解説

せっかく作ったユーザーフォームもそれを起動するマクロがなければ意味がありません。そこで、そのマクロを作成しましょう。

  1. 「挿入」メニューから「標準モジュール」を選択し、新しいモジュールシートを開きます。
     
     
  2. 以下のコードを記述します。

Sub FormSample()
  Do
    UserForm1.Show
  Loop
End Sub

 
【このコードの解説】

 

「マクロの実行」から「FormSample」を選択して実行すると、今回の一連のマクロが起動します。
 
実行されるとすぐに、作成したユーザーフォームが表示されるので、フォームに情報を入力します。「名前」と「年齢」は直接入力します。性別については、入力欄の右端にある逆三角形をクリックすると、候補リスト(アイテム)が表示されるので、該当するほうを選択します。
すべての欄の入力が完了したら、「OK」ボタンを押します。
すると、シートの該当する位置にそれぞれの情報が入力されるわけです。
これが何度も繰り返されるので、必要な分だけ入力して下さい。
 
終了したい場合は、フォーム上の「キャンセル」ボタンを押すことにより、終了します。

 

+α講座

ユーザーフォームには、今回利用した「ラベル」や「テキストボックス」や「コンボボックス」、「コマンドボタン」の他にも様々なツールがあり、思いのままのユーザーフォームを作成することが可能です。
自分なりに色々試して、ユーザーフォームでより快適にExcelをお使い下さい。