【EXCEL VBA】ユーザーフォームの作り方のまとめ

訪問して頂きありがとうございます。まさふくろーです。

今回は、ユーザーフォームの作り方をご紹介します。

動作イメージ
①入力フォーム起動ボタンをクリック

②入力フォーム起動

③文字を入力

④登録ボタンクリック

⑤シートに反映

 

シートにボタンを設置する

ボタンコントロールを選択します。

①「開発」タブをクリック⇒②「挿入」ボタンをクリック⇒フォームコントロールグループから③「ボタン」を選択。

シートにボタンを設置します。

シートにフォーカスを移動すると、ポインターが「+」の状態になります。

この状態で、左クリックを押したままズルズルっとマウスを移動すると、四角い枠ができます。

左クリックから手を離すと、「マクロの登録」画面が起動します。

マクロ名を「入力フォーム起動_Click」と入力します。

「新規作成」ボタンをクリックします。

すると、Visual Basic Editor(VBE)と呼ばれる画面が起動し、先ほど入力したマクロ名が反映されます。(赤枠)

Visual Basic Editor(VBE)を最小化(赤枠)し、エクセルのほうを表示するとボタンが設置された状態になります。

ボタンの名前を変更します。

ボタンが選択された状態で、右クリック⇒「テキストの編集」を選択します。

すると、「ボタン」の中が入力できるようになるので、「ボタン1」という文字を消して、「入力フォーム起動」と入力します。

入力フォームを作成する(ユーザーフォーム作成)

Visual Basic Editor(VBE)を起動します。

①「開発」タブをクリック⇒②「Visual Basic」を選択。

ユーザーフォームを作成します。

①「VBAProject(Book1)」を選択し、右クリック⇒②「挿入」を選択⇒③「ユーザーフォーム」を選択し、ユーザーフォームを作成。

入力フォームを作成する(テキストボックス配置)

入力項目を作成します。

①「表示」タブをクリック⇒②「ツールボックス」を選択。

ツールボックスから「テキストボックス」を選択。

フォームにフォーカスを移動すると、ポインターが「+」の状態になります。

この状態で、左クリックを押したままズルズルっとマウスを移動すると、四角い枠ができます。

左クリックから手を離すと、入力項目が出来上がります。

オブジェクト名を変更します。

①「表示」タブをクリック⇒②「プロパティウィンドウ」を選択。

プロパティウィンドウが表示されます。

オブジェクト名を「TextBox1」から「txt氏名」に変更。「オブジェクト名」欄は直接入力できます。

また、オブジェクト名は「TextBox1」のままでも構いませんが、どの項目なのかをわかりやすくするために変更します。

入力フォームを作成する(ボタン配置)

登録ボタンを作成します。

ツールボックスから「コマンドボタン」を選択。

テキストボックスの配置と同じ要領で、ボタンを配置します。

プロパティウィンドウを表示し、①オブジェクト名を「CommandButton1」⇒「cmd登録」に、②Captionを「CommandButton1」⇒「登録」に変更。

閉じるボタンを作成します。

登録ボタンと同じ要領で、閉じるボタンを作成します。

オブジェクト名を「CommandButton1」⇒「cmd閉じる」、Captionを「CommandButton1」⇒「閉じる」に変更。

VBAコードを作成します。

上記で作成した「登録」ボタン、「閉じる」ボタン、エクセルシート上に配置した「入力フォーム起動」ボタンを押した際にどのような動きをさせるかをVBAコードに記述します。

登録ボタンにVBAコードを記述します。

ユーザーフォームの「登録」ボタンをダブルクリックし、VBAコードを入力する画面に切り替えます。

上記赤枠のPrivate Sub cmd登録_Click()

End Sub

の中にコードを記述します。

動作イメージは、

登録ボタンを押す(クリック)⇒氏名(テキストボックス)に入力された値を取得⇒エクセルシートの氏名欄に反映する。

※エクセルシートの氏名欄は、すでに設定されている行の次行に反映するものとする。

この一連の動作をVBAコードに記述します。

閉じるボタンにVBAコードを記述します。

動作イメージは、

閉じるボタンを押す(クリック)⇒入力フォームを閉じる。

入力フォーム起動ボタンにVBAコードを記述します。

プロジェクトエクスプローラー①「プロジェクト VBAProject」を表示⇒②「標準モジュール」をダブルクリック⇒③「Module1」をダブルクリックし、VBAコードを入力する画面に切り替えます。

Sub 入力フォーム起動_Click()の中にコードを記述します。

動作イメージは、

入力フォーム起動ボタンを押す(クリック)⇒入力フォームを表示する。

エクセルファイルを保存します。

エクセルファイルを保存する場合、ファイルの種類を「Excelマクロ有効ブック(*.xlsm)」にて保存してください。このようにしないと、VBAコードが保存されません。

最後まで読んでいただき、ありがとうございました!