第5回VBA活用講座は1月24日(木)、14名の参加のもと大みか拠点で開催しました。今回は、教本の日経BP社発行の「残業ゼロ」の決め手!Excel VBA実践テクニック」のChapter4の後半の具体例について、勉強しました。
  講座の内容梗概は下記のとおりです。

Chapter4 Excel VBA応用テクニック

 第4回 イベントマクロで操作に応じた自動実行

◆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関数の機能を学習。

 第5回 ユーザーフォームを表示して連続データを入力する

◆VBEのプロジェクトを選択して、「挿入」メニューから「ユーザーフォーム」を選ぶ。設計画面が表示される。
◆この設計画面にツールボックスの「コントロール」から、ラベルやテキストボックスなどを選択し、ドラッグする。
◆設計画面の名前は「UserForm1」となっているが、左にプロパティウインドウの「caption」の右に名前を入力す
  ることができる。
◆ラベルやコマンドボックスの名前は直接変更することができる。

◆ コマンドボタンをダブルクリックして、イベントマクロを作成する。ここでは連続データ作成の例を示す。

◆このイベントマクロを実行するには、標準モジュールに、フォームを呼び出すマクロを作成する。

◆Excelではできない連続のデータの作成が可能となる。

 第6回 右クリックメニューからマクロを実行する

◆これまでのマクロを、セルを右クリックして表示されるショートカットメニューに、表示させることができる。
◆既存のメニューに追加するには、標準モジュールにユーザー名などを表示させるマクロを作成し、ショートカット
  メニューの表示方法のマクロを作成する。
◆セルを選択して右クリックし、マクロを実行すると、ユーザー名などショートカットメニューに表示される。
◆独自のショートカットメニューを作成するには、標準モジュールに、独自のショートカットメニュー作成マクロを作
  り、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セルの背
  景色がピンク色になる。

講師・文責 世話人 安田 出

1901vba

第5回 VBA活用講座に参加の皆さん

(戻り)