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

Chapter3 Excel VBAで始めるプログラミング

 第2回 一部だけ内容を変えながら同じ処理を繰り返す

◆「Do~Loopステートメント」は、ブロック内の処理をいつまでも繰り返す命令、「Until」を指定した場合は条件が
  真(true)になるまで、「While」を指定した場合は条件が真の間、処理を繰り返す。繰り返しの中で「Ifステートメ
  ント」を使い、条件に応じて「Exit Do」を実行することで、繰り返しを抜けることもできる。
◆最大値を求める関数の名前の正解が出るまで問うプログラム実例、「InputBox」関数や「MsgBox」関数の紹介
◆個人別の点数表で、個人の点数によって合否を表示するプログラムの実例紹介。
◆「For~Nextステートメント」は、数値型の変数を開始値から一定の間隔で変化させ、終了値になるまで処理を
  繰り返す命令。変化の間隔は、指定しなければ1ずつ増加、指定する場合は「Step」の後に指定する。
◆九九の練習プログラムの作成例の紹介。段を指定して「OK」を押すと最後まで実施し、成績も表示する例。

 第3回 メソットとプロパティによるオブジェクトの操作を理解する

◆「オブジェクト」とはセルやワークシートなど操作対象、「プロパティ」はオブジェクトの状態や属性、「メソット」は
  オブジェクトの機能を利用したり、状態を変化させたりする操作を意味する。「オブジェクト」の後ろに「.」を付け
  て「プロパティ」や「メソッド」を指定する 
◆たとえば、オブジェクトの値に「文字」を追加する例として、ActiveCell.Value = ActiveCell.Value&"本店"
◆セルの漢字にフリガナを付けるマクロは、Selection.SetPhoneticで、SetPhoneticメソッドでフリガナを付ける。
◆Applicationオブジェクトのメソッド1つがInputBoxであり、「InputBox」関数とは異なる。
◆ActiveCellのCurrentRegionのプロパティはアクティブセルを含む表全体の範囲を表すRangeオブジェクトを返
  す。このプロパティから、罫線などを指定する。
◆「Withステートメント」を利用すると、オブジェクトを表す記述が1回で済む。「With」の後にオブジェクトを書き、
  そこから「End With」の行までの間に「.」に続けてそのプロパティやメソッドを指定する。
◆「For Each~Nextステートメント」は、コレクションに含まれるオブジェクトの数だけ処理を繰り返す。
◆「For Each~Nextステートメント」の例として、Selectionプロパティで選択範囲を表すRangeオブジェクトを取得
  し、その中の各セルに支店という文字を追加する処理を繰り返す例を示す。

 第4回 特定のタイミングでマクロを自動実行する

◆セルの値を変更したり、右クリックしたりなど何らかの操作をきっかけに自動実行されるマクロを「イベントマクロ」
  という。きっかけとなる操作を「イベント」という。
◆ワークシートに対するイベントマクロを作るには、VBEを開いて、イベントを設定したいワークシートをダブルクリ
  ックする。左上の「オブジェクト」ボックスで「Worksheet」を選び、右上の「プロシージャ」ボックスをクリックする
  と、Worksheetオブジェクトで使用可能なイベントが表示される。「Change」を選ぶと、Changeイベントに対応す
  るプロシージャが挿入される。
◆イベントマクロとして、セルの値を変更すると背景色が変る例、Target.Interior Color = rgbLightGreen
  「Target」」という引数で、変更されたセルを表すRangeオブジェクトを取得する。 
◆変更されたセルが特定の範囲のみ色を変える場合、Intersectメソッドを利用する。
◆「Worksheet BeforeDoubleClick」プロシージャはセルをダブルクリックした時に自動実行される。例として、対
  象セル(Target)が数値の場合、ダブルくクリックすると1加算するマクロを示す。
◆「Worksheet BeforeRightClick」プロシージャは選択したセルや範囲をし右クリックしたときに自動実行される
  。例として、対象とするセルや範囲の「標準」の表示形式の場合は、非表示にするマクロを示す。
◆ブックを開いたときに自動実行される「Workbook_Open」の占いマクロの例も示す。

 第5回 独自の操作画面を持った「クイズアプリ」を作成

◆VBAでは「ユーザーフォーム」と呼ぶ独自の画面を作成することができるる。
◆VBEを起動して「挿入」から「ユーザーフォーム」を選択する。すると「ユーザーフォーム」のモジュールがプロジ
  ェクトエクスプローラーに追加され、コードウインドウが表示される同じ場所に、ユーザーフォームのひな型が表
  示される。3か所に表示されているハンドルをドラッグして大きさが変えられる。
◆ここに「ツールボックス」から各種部品を配置する。まず「ラベル」をダブルクリックして、ユーザーフォームのひ
  な型の上をドラッグして配置をする。「label1」の文字は「プロパティウインドウ」で目的に合った名前に変更する
◆次に、「テキストボックス」や「コマンドボタン」を配置して、シンプルなユーザーフォームを完成させる。
◆ユーザーフォームでの操作は、通常、コマンドボタンをクリックして実行する。コマンドボタンをクリックするとコー
  ドウインドウが開き、ここに処理を記述する。
◆出来上がったユーザーフォームを表示させるには、標準モジュールで記述した別のプログラムから呼びだす。
  「UserForm1を表示する」という1行の命令からなるプログラムを標準モジュールに作成すればよい。
◆クイズ出題フォームを設計した例でさらに詳細な設計が可能であるが、ここでは省略する。

講師・文責 世話人 安田 出

1811vba

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

(戻り)