住所録の入力をフォームで作成
フォームの説明のまとめとして、例題を考えてみたいと思います。前回の「繰り返し処理編」の繰り返し文例題で作成したものの入力部分をフォームで作成しましょう。例題は、「入力項目は郵便番号、住所1、住所2、名前、電話番号、とします。上部の青い項目から入力させ、設定ボタンを押すと、ページ下に用意した表の末尾に入力データをセットします。名前は姓と名で別々に入力してもらい、表示のときにスペースを入れてつないで書き込みます。」というものでした。 まずExcel表にデータを書き込む表を作成しましよう。
混乱しないように、前回の例と同じ場所にしました。次にフォームを作成します。[挿入]-[ユーザーフォーム]でフォームを表示させます。
設定ボタンをダブルクリックして、コード入力ブロックを表示させます今回も前回と同じく郵便番号は必ず入力されていると仮定しています。余力があれば、例題作成後、郵便番号の入力エラーチェック処理を追加してみてください。
[リスト8]CommandButton1_Click、CommandButton2_Click(住所録作成例題.xlsm)
'****************
'設定
'****************
Private Sub CommandButton1_Click()
y = 6
Do While Cells(y, 2) <> ""
y = y + 1
Loop
Cells(y, 2) = TextBox1.Text '(1)データ設定
Cells(y, 3) = TextBox2.Text
Cells(y, 4) = TextBox3.Text
Cells(y, 5) = TextBox4.Text
Cells(y, 6) = TextBox5.Text & " " & TextBox6.Text
TextBox1.Text = "" '(2)入力場所クリア
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox1.SetFocus
End Sub
'******************
'終了
'******************
Private Sub CommandButton2_Click()
End
End Sub
前回と違う所は、(1)のデータ設定がコントロールになっている所と(2)の入力の場所をクリアする所です。標準モジュールに「リスト8」を書いてください。セルの所にボタンを作成し、実行してみてください。
フォームを使えば、Excelの、表に入力するというイメージとは違う入力方法を提供できると思います。初心者に優しい入力方法で、操作をする人にExcelの持つ表計算の威力を味わってもらえるのではないでしょうか。
まとめ
今回Windowsのプログラムを作成するための新しい考え方が登場しました。以下簡単に表にまとめてみます。
項目 | 説明 |
---|---|
マクロ | SubからEnd Subまでのひと固まりのVBAでワークシートから実行できるもの |
イベント | 使う人が操作を行った時やプログラムの外部から指示があったとき、の指示の事 |
イベントドリブン | (イベント駆動型)Windowsのプログラムの実行方法。使う人が操作を行った時にプログラムを動かすという方法 |
イベントハンドラ | イベントを受けて動くプログラム |
コントロール | フォームやセルの上に貼り付けてそれぞれの処理をする |
プロパティ | 各コントロールの情報を設定する |
プロシージャ | ひと固まりの機能を持った部品(SubからEnd Subまでのひと固まりのVBA) |
フォームについて説明を行いました。セルのみの操作でなくフォームを使って処理をすると、作成できる範囲がぐんと広がるのではないでしょうか。
WINGSプロジェクト 横塚利津子著/山田祥寛監修
<WINGSプロジェクトについて>テクニカル執筆プロジェクト(代表山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。2009年4月時点での登録メンバは30 名で、現在も一緒に執筆をできる有志を募集中。