プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、実用的なExcelアプリを作るために、フォームにテキストボックス、オプションボタン、リストボックスなどのコントロールを配置してボタン実行時のイベント処理をマクロで書く方法などについて【Windows 10、Excel 2016に対応】。
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する本連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。今回は、フォームを作って、そのフォームに入力したデータをExcelに追加していく方法を紹介する。フォームを使用すると、いかにもアプリケーションらしいUI(ユーザーインターフェース)を作ることができる。
日々の業務で、自分の作ったフォームでデータの入力をしていると、社内でのあなたを見る目が尊敬の眼差しに変わるかもしれない。フォームを作成することは、特に難しいことでもないので、マスターして毎日の業務に取り入れてほしい。
また、これまでの連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」で紹介してきたさまざまな文法が使われているので、連載の総集編として挑戦してほしい。
フォームを作成する手順から、順を追って解説していこう。
まず、Excelを起動し、VBE(Visual Basic Editor)を起動する。もうVBEの起動方法は分かるはずだ。もし分からない方がいたら、連載第2回の「初心者でも図解で分かる! VBEの基本的な使い方とVBAプログラムの基礎文法」を読み直してほしい。
VBEの[プロジェクト]エクスプローラー内に、「Sheet1(Sheet1)」というプロジェクトがある。それを選択して、VBEのメニューから[挿入]→[ユーザーフォーム]と選択する(図1)。
すると図2のように「UserForm1」のフォームが表示される。このフォームは表示されている四角をドラッグして幅を広くしたり、縦を長くしたりすることが可能だ。何を作るかによって適当な大きさのフォームを作るといいだろう。
フォームの横には[ツールボックス]が表示される。この[ツールボックス]にはフォーム上に配置できる「コントロール」が登録されている。
「コントロール」とはフォーム上に配置する「部品」のようなものだと考えてほしい。
図2のフォームに付いている「UserForm1」という名前は変更可能だ。フォームのプロパティから変更する。
フォームが選択された状態であると、[プロパティ]ウインドウ内にUserForm1の[プロパティ]が表示されている。その中の[Caption]に今回は「個人情報」と入力した。
すると、フォームのタイトルが「個人情報」に変わる。プロパティにはいろいろ種類があるので、各自が設定して確認してほしい。背景色を変える「BackColor」やフォームの枠線の色を変える「BorderColor」など、いろいろ用意されている。今回は「BackColor」に[パレット]から「Blue」を選択してみた(図3)。
次に[ツールボックス]からコントロールを配置してみよう。今回作るフォームには表のような項目とコントロールを配置する。
項目名 | 使用するコントロール | オブジェクト名 |
---|---|---|
氏名 | テキストボックス | 氏名テキストボックス |
住所 | テキストボックス | 住所テキストボックス |
電話番号 | テキストボックス | 電話テキストボックス |
性別 | オプションボタン | 男性オプションボタン 女性オプションボタン |
登録 | コマンドボタン | 登録ボタン |
各項目名 | ラベル | デフォルト値のまま |
[ツールボックス]でどのコントロールが何に該当するかは、コントロールの上にマウスをかざすとツールチップヒントが出てコントロールの名前が表示されるので、それで確認してほしい。
表に従ってコントロールを配置すると図4のようになる。
各コントロール、この場合は項目名となる「ラベル」を配置したとき、「ラベル」の[Caption]に項目名を指定し、[ForeColor]に「白」を指定している。[ForeColor]値は、その[プロパティ]を選択すると右に表示される[▼]アイコンをタップすると、[パレット]タブと[システム]タブが表示されるので、[パレット]タブ内から「白」を選択するといい。
「氏名」と「住所」に配置した「テキストボックス」には[プロパティ]の[IMEMode]に「fmIMEModeOn」を選択して、IMEモードをオンにしている。「電話番号」では「fmIMEModeOff」にして、IMEモードはオフにしている。
「性別」に使用している「オプションボタン」も、[プロパティ]から[Caption][ForeColor]を設定している。
配置した各コントロールには、[プロパティ]の[(オブジェクト名)]に任意の名前を指定できる。各配置したコントロールの[(オブジェクト名)]は表を参照してほしい。
Copyright © ITmedia, Inc. All Rights Reserved.