エクセルのユーザーフォームを使った顧客管理ソフトの作成手順を紹介します。
今回は初級編として、「顧客情報入力」フォームからデータを入力して登録ボタンを押下すると最終行に追加される という簡単な仕様で作成します。
<作成手順>
●顧客データを保存するシートのシート名を「顧客情報」に変更し、
1行目に保存するデータの名称を入力します。
●「Visual Basic Editor」を起動します。
Excel2003・・・メニューバー「ツール→マクロ→Visual Basic Editor」
Excel2007以降・・・リボン「開発→Visual Basic Editor」(開発タブが表示されていない場合は「ファイル→オプション→リボンのユーザー設定→メインタブ→[開発]をチェックONする」)
●ツールバー「挿入→ユーザーフォーム」で新規フォームを作成します。
●ツールボックスの「テキストボックス」をクリックして、新規フォームへテキストボックスコントロールを配置します。
配置したテキストボックスの「オブジェクト名」プロパティに名前(txt顧客番号)を付けます。
(プロパティウィンドウが表示されていない場合は、ツールバー「表示→プロパティウィンドウ」)
テキストボックスに表示するフォント(文字サイズ等)を「Font」プロパティで設定します。
テキストボックスのIMEモード(ひらがな/半角英数 等)を「IME Mode」プロパティで設定します。
半角英数のみ(IMEオフ)の場合・・・「2 - fmIMEModeOff」
ひらがな入力の場合・・・「4 - fmIMEModeHiragana」
●ツールボックスの「ラベル」をクリックして、ラベルコントロールを配置します。
ラベルに表示する名称を「Caption」プロパティで設定します。
同様の手順で「txt顧客名」「txt郵便番号」「txt住所」「txt電話番号」「txt備考」のテキストボックスとラベルを追加します。
備考のような複数行入力したい項目には「MultiLine」プロパティに「True」を設定すると、入力時に「Shift」+「Enter」キーを押下することで改行入力できます。
●ツールボックスの「コマンドボタン」をクリックして、ボタンを配置します。
配置したコマンドボタンの「オブジェクト名」プロパティに名前(cmd登録)を付けて、ボタンに表示する名称(登録)を「Caption」プロパティに設定します。
●作成したフォームの「オブジェクト名」プロパティに名前(frm顧客情報入力)を付けて、フォームのタイトルバーに表示する名称(顧客情報入力)を「Caption」プロパティに設定します。
●入力順番の設定は、フォーム上を右クリックしてショートカットメニューの「タブオーダー」から設定します。
●「登録」ボタンをダブルクリックして、「登録」ボタン押下時の処理を記述します。
Private Sub cmd登録_Click() '← 登録ボタン押下時の処理追加
Dim wRow As Long
If Me.txt顧客番号 = "" Then '顧客番号が未入力の場合はエラー表示
MsgBox "顧客番号を入力してください。", vbExclamation + vbOKOnly, "入力エラー"
Exit Sub
End If
If Me.txt顧客名 = "" Then '顧客名が未入力の場合はエラー表示
MsgBox "顧客名を入力してください。", vbExclamation + vbOKOnly, "入力エラー"
Exit Sub
End If
With Worksheets("顧客情報")
wRow = .Range("A1").CurrentRegion.Rows.Count + 1 '最終行+1
.Cells(wRow, 1) = Me.txt顧客番号 'フォームに入力された各データをシートに送る
.Cells(wRow, 2) = Me.txt顧客名
.Cells(wRow, 3) = Me.txt郵便番号
.Cells(wRow, 4) = Me.txt住所
.Cells(wRow, 5) = Me.txt電話番号
.Cells(wRow, 6) = Me.txt備考
End With
Unload Me 'フォームを閉じる
End Sub
●「顧客情報」シートへフォーム起動ボタンを追加します。
Excel2003・・・VisualBasicツールバーの「コントロールツールボックス→コマンドボタン」(VisualBasicツールバーが表示されていない場合は、メニューバー「表示→ツールバー→VisualBasic」)
Excel2007以降・・・リボン「開発→コントロール→挿入→ActiveXコントロール→コマンドボタン」(開発タブが表示されていない場合は「ファイル→オプション→リボンのユーザー設定→メインタブ→[開発]をチェックONする」)
コマンドボタン上で右クリックしてショートカットメニューから「プロパティ」を選択し、「オブジェクト名」プロパティにコマンドボタンの名前(cmd顧客情報入力)を設定し、「Caption」プロパティにボタンに表示する名称(顧客情報入力)を設定する。
「顧客情報入力」ボタンをダブルクリックして、「顧客情報入力」ボタン押下時の処理を記述します。
Private Sub cmd顧客情報入力_Click()
frm顧客情報入力.Show '← フォームを表示する
End Sub
<完成>
完成したファイルを下記ボタンからダウンロード出来ます。
次回は、今回作成したフォームに「検索」ボタンを追加して、入力済みデータの呼び出し・修正登録ができるように機能追加する手順を紹介します。
第2回 フォームを使った顧客管理の作成 [検索ボタンの追加]