Excelで「入力フォーム」を作成する手順

Microsoft Excel 2016 で下記のような入力フォームを作成する手順を書いておきます。

入力フォームを作ることで直接シートに入力するより効率が上がると思いますし作成できるとカッコいいwと思いますので、興味がある方は作ってみて下さい(初心者向けの記事なので誰でも作成できると思います)

今回、作成するもの↓GIFアニメなので再生されない場合はクリックして下さい。

以下、手順です。

Excelを起動してVBAを使えるように設定します。

①Excelのオプション>リボンユーザーの設定>右側のメインタブの中にある「開発」にチェックを入れてOK。

②空白のBookを作成してセルに、ID/名前/郵便番号/住所/電話番号/性別の順に入力します

③開発タブ>Visual Basicをクリック

④VBAの作成画面が開くので「プロジェクトエクスプローラー」と「プロパティ」をクリックして下記のように表示させます。

④プロジェクトの何もないところで右クリック>挿入>ユーザーフォームを選択。

⑤ツールボックスの「ラベル」をクリックしてUserForm1の中に下記のように設置します。※もしコード入力画面などに移動してしまった場合は右のUserForm1をダブルクリックで下記の画面に戻れます

⑥これをコピーして6個設置します。(位置は多少バラバラでもOK)

⑦ドラッグして全てのラベルを選択状態にしてから、メニュー:書式の整列>左や上下の間隔:均等を選択してラベルの位置を調整します。

⑧各ラベルを選択後、右クリックしてラベルの表示内容を書きかえます。フォントや色を変更したい場合はプロパティから選択して指定します(今回はデフォルト)

⑨続いて「ID」「名前」「郵便番号」「電話番号」にテキストボックスを選択して下記のように設置します。

⑩住所はプルダウン形式にするのでコンボ ボックス、性別はオプションボタンで設置して下さい

⑪コマンドボタンで「OK」と「Cancel」を作成します

これでフォームの作成は終了なのでExcelのシートと連携させます。

⑫プロジェクトの何もないところで右クリック>挿入>標準モジュールを選択

⑬そこに下記のように入力※これでマクロボタンから作成したUserForm1を呼びだせるようになります

Sub form() ←formという名前のマクロ名を作成
UserForm1.Show
End Sub

⑭このままプロジェクト内のUser Form1をダブルクリックして先ほどの画面にもどり、Cancelをダブルクリックします。

⑮Cancel(=コマンドボタン2)をクリックした時の動作を入力します(画像の通りにして下さい)

Unload Me

⑯ここで一度、左上にある表示ボタンをクリックして動作を確認します。

⑰Excelのシートの画面が開きますので「マクロ」をクリック。作成したフォームを選択することで下記のようにフォームを開くことができます、またCancelで閉じることも確認して下さい。※この時に挿入>ボタンを設置>ボタンの内容を作成したフォームに選択することで同様に開くこともできます

⑱動作確認後にVisual BasicをクリックしてUserForm作成画面に戻り「OK」をダブルクリック。

⑲「OK」をクリックした時の動作を入力します(下記画像を参考)

Private Sub CommandButton1_Click() ←OKボタンをクリックした時に

Sheets(“sheet1”).Select ←Sheet1を読み込む

i = Cells(Rows.Count, 2).End(xlUp).Row + 1 ←2列目(”B”)の入力最終行の、次の列を読み込む引数をiとする※これは覚えるしかない…

Cells(i, 2).Value = Me.TextBox1.Value ←2列目+最終行の次にTextBox1の値を入力
Cells(i, 3).Value = Me.TextBox2.Value ←3列目+最終行の次にTextBox2の値を入力
Cells(i, 4).Value = Me.TextBox3.Value ←4列目+最終行の次にTextBox3の値を入力
Cells(i, 6).Value = Me.TextBox4.Value ←6列目+最終行の次にTextBox4の値を入力

For j = 1 To 4
Me.Controls(“TextBox” & j).Value = “” ←TextBox1~4の値を””=空にする
Next

‘もしFor文を使わない場合は下記のようになります

‘Me.TextBox1.Value = “” ←TextBox1の値を空にする
‘Me.TextBox2.Value = “” ←TextBox2の値を空にする
‘Me.TextBox3.Value = “” ←TextBox3の値を空にする
‘Me.TextBox4.Value = “” ←TextBox4の値を空にする

End Sub

⑳この時点で動作確認すると大まかではありますがテキストボックスの入力が正常に行えます

㉑ただ入力し難いと思いますので「ID」「郵便番号」「電話番号」のプロパティからIMEModeを3のDisableに変更。「名前」を4のHiraganaに変更します。

㉒続いて住所(県)をプルダウンで選択できるように、Excelのシートを一枚追加(Sheet2)してA1からA3に「石川県」「富山県」「福井県」と入力してください。

㉓住所のComboBoxを選択してRowSourceに下記を入力します。

sheet2!A1:A3 ←sheet2のA1~A3を参照する

㉔再度、OKをダブルクリックして下記を入力

Cells(i, 5).Value = Me.ComboBox1.Value ←5列目+最終行の次にコマンドボックス1の値を入力

Me.ComboBox1.Value = “” ←プルダウンを空にする

㉕ここで動作確認。オプションボタン以外は入力できているはずです。

㉖オプションボタンの設定をしますのでフォームを開き「男」「女」を選択した状態でGroupNameを入力します(一つのまとまりとするため)

㉗OKをダブルクリックして下記を入力します。

If OptionButton1 = True Then ←もし男のボタンが選択されたら
Cells(i, 7).Value = Me.OptionButton1.Caption ←7列目+最終行の次にオプションボタン1のCaptionの値を入力する
End If

If OptionButton2 = True Then ←もし女のボタンが選択されたら
Cells(i, 7).Value = Me.OptionButton2.Caption ←7列目+最終行の次にオプションボタン2のCaptionの値を入力する
End If

Me.OptionButton1.Value = False ←クリア
Me.OptionButton2.Value = False ←クリア

ちなみにCaptionの値はプロパティで確認・変更できます。

これで下記のように入力フォームの入力した値がExcelのシートに全て反映されるようになります

久しぶりのブログ更新だったので気合をいれてExcelネタを書いたのですが、予想通り大変ででした・・・文字数も多くなるし画像もふえるし…時間掛かりすぎ(苦笑

スポンサーリンク