このページでは、ユーザーフォームを使ったマクロの作成手順をご紹介します。マクロの内容は、リストボックスで選択した項目をアクティブセルに入力するものです。
まず、エクセルを起動して、新規ブックを作成します。
Sheet1 の A1:A5 にテストデータを入力します。
Visual Basic Editorを起動します。
アクティブブックのプロジェクトに標準モジュールを挿入します。
ユーザーフォームを表示するマクロを作成します。
ブラウザ上で、以下のマクロをマウスで範囲選択してコピーし、コードのウィンドウに貼り付けてください。
Sub MyFormShow() UserForm1.Show End Sub
これでマクロが作成されました。
次にユーザーフォームを挿入します。
ユーザーフォームが挿入されました。
リストボックスを作成します。ツールボックスでリストボックスのボタンをクリックしてから、ユーザーフォーム上で配置したい位置をドラッグします。図形を作成する要領です。
リストボックスが作成されました。位置や大きさはマウス操作で変更できます。
リストボックスに表示する項目をプロパティウィンドウで設定します。リストボックスを選択して右クリックし、[プロパティ]を選択します。
RowSource の項目に Sheet1!$A$1:$A$5 と入力します。
リストボックスにワークシート上の項目が表示されました。
コマンドボタンを作成します。ツールボックスでコマンドボタンのボタンをクリックしてから、ユーザーフォーム上で配置したい位置をドラッグします。
コマンドボタンが作成されました。
コマンドボタンをクリックしたときに実行するコードを作成します。コマンドボタンをを選択して右クリックし、[コードの表示]を選択します。
コードのウィンドウが表示されたら、1行追加して以下のようにしてください。アクティブセルにリストボックスの選択項目を入力するというコードです。
Private Sub CommandButton1_Click() ActiveCell.Value = ListBox1.List(ListBox1.ListIndex) End Sub
これでとりあえずマクロは完成です。
それではマクロを実行してみましょう。
エクセルのウィンドウに戻り、適当なセルを選択して、マクロ実行のダイアログボックスを表示します。
MyFormShowマクロを選択して[実行]ボタンをクリックします。
ユーザーフォームが表示されます。リストボックスの項目を選択してボタンをクリックすると、アクティブセルに選択項目が入力されます。
マクロはワークシートと一緒にブックファイルに保存されるので、ファイルを保存しておけば、次にファイル開いたときにまた使うことができます。
ユーザーフォームや標準モジュールをファイルから削除するには Visual Basic Editor の [プロジェクト] ウィンドウで削除したいモジュールを選択して、[ファイル]-[(モジュール)の解放](Excel 97 の場合は [(モジュール)の削除])を実行します。エクスポートの問い合わせがあるので、モジュールを別ファイルに保存しておきたい場合は [はい]、特に必要がなければ [いいえ] を選択します。(シートや ThisWorkbook のモジュールの場合は、モジュールは削除できないので、中のコードをすべて削除します)
いかがでしたか? はじめの一歩は踏み出せたでしょうか。