第5回VBA活用講座は1月24日(木)、14名の参加のもと大みか拠点で開催しました。今回は、教本の日経BP社発行の「残業ゼロ」の決め手!Excel VBA実践テクニック」のChapter4の後半の具体例について、勉強しました。
講座の内容梗概は下記のとおりです。
◆Excel作業中に特定の操作や状況になったりした時に、自動的に実行されるプログラムを「イベントマクロ」、ま
たは、「イベントプロシージャ―」という。
◆「イベントマクロ」は標準モジュールではなく、VBEのプロジェクトエクスプローラーの「This Workbook」をダブ
ルクリックして、「オブジェクトボックス」の▼をクリックして「WorkBook」を選択する。するとコードウインドウの中
に自動的に「Workbook_Open」というSubプロシージャ作成画面が表示される。
◆「Workbook_Open」というSubプロシージャは、Wrokbookオブジェクトのオープンイベントに対応したイベントマ
クロである。ここにプログラムを記入すればよい。
◆このWorkbook_Open時の作成例を示す。CountIf関数、VLookup関数、CLng関数の機能を学習する。
◆「Open」以外のイベントマクロは右上の「プロシージャボックス」の▼をクリックして選択する。ブックを閉じようとし
た時に発生する「BeforClose」にイベントマクロの作成例を示す。
◆Worksheet上で機能するイベントマクロを作成する場合、VBEのプロジェクトエクスプローラーにあるSheet2を
ダブルクリックしてコードウインドウを表示し、「オブジェクト」ボックスの▼から「Worksheet」を選ぶ。
◆これで「SelectionChange」にイベントマクロが作成されるが、プロシージャボックスの▼から「Change」を選び
、セルの値が変更された時にイベントマクロ「Worksheet_Change」の作成例を示す。
◆プロシージャボックスから「Worksheet_BeforDoubleClick」(ダブルクリック) 、「Worksheet_BeforRightClick」
(右クリック)のイベントマクロの場合の作例を示す。
◆Intersect関数、IsNumeric関数、Format関数の機能を学習。
◆VBEのプロジェクトを選択して、「挿入」メニューから「ユーザーフォーム」を選ぶ。設計画面が表示される。
◆この設計画面にツールボックスの「コントロール」から、ラベルやテキストボックスなどを選択し、ドラッグする。
◆設計画面の名前は「UserForm1」となっているが、左にプロパティウインドウの「caption」の右に名前を入力す
ることができる。
◆ラベルやコマンドボックスの名前は直接変更することができる。
◆ コマンドボタンをダブルクリックして、イベントマクロを作成する。ここでは連続データ作成の例を示す。
◆このイベントマクロを実行するには、標準モジュールに、フォームを呼び出すマクロを作成する。
◆Excelではできない連続のデータの作成が可能となる。
◆これまでのマクロを、セルを右クリックして表示されるショートカットメニューに、表示させることができる。
◆既存のメニューに追加するには、標準モジュールにユーザー名などを表示させるマクロを作成し、ショートカット
メニューの表示方法のマクロを作成する。
◆セルを選択して右クリックし、マクロを実行すると、ユーザー名などショートカットメニューに表示される。
◆独自のショートカットメニューを作成するには、標準モジュールに、独自のショートカットメニュー作成マクロを作
り、Sheet2に右クリックで表示させるイベントマクロを記述する。 これで右クリックで独自メニューが表示される。
◆特定のワークシートだけでなく、1つのブックに含まれるすべてのワークシートで、右クリックでこのメニューを使
用したい場合は、「ThisWorkbook」に「Workbook_SheetBeforRightClick」イベントマクロに同様の記述をする
必要がある。
◆特定のブックだけではなく、開いているすべてブックで、右クリックからマクロを実行したい場合は、「挿入」から「
クラスモジュール」を選択し、「Public WithEvents AppObj As Application」を記述する。
さらに、「ThisWorkbook」には「Set clApp.AppObj = Application」を記述して、アプリケーションとクラスモジュ
ールを関連づける必要がある。
◆VBEの「表示」メニューの「イミディエイトウィンドウ」を使えば、Subプロシージャーを作成しなくても、即時実行
することができる。例えば、[b3:b5].interior.color = rgbpinkと書いて[Enter]キーを押せば、B3~B5セルの背
景色がピンク色になる。
講師・文責 世話人 安田 出
第5回 VBA活用講座に参加の皆さん