PR

 前回は、2つのセルに設定した入力規則の値を連携させるために必要な準備を行いました。さらに、ワークシートのChangeイベントプロシージャの枠組みを挿入するところまで、作業を進めていきました。今回は、このイベントプロシージャの働きを理解し、実際に利用するプログラムの大枠を作成していくことにしましょう。

作成途中のコードウィンドウを開く

 それでは、前回シートを作りこんだブックを開き、「Visual Basic」ツールバーの「Visual Basic Editor」ボタンをクリックしてVisual Basic Editor(以降、VBE)を起動してください。

 VBE画面には、前回作成したイベントプロシージャの枠組みが記述されたコードウィンドウが開くはずです。もし開かれないときには、VBE画面の左上にあるプロジェクトエクスプローラの「Sheet1(報告書)」をダブルクリックしてください。
まずはコードウィンドウ内に表示されている、「Worksheet_Change」イベントプロシージャの働きをみていくことにしましょう(図1)。

図1 コードウィンドウの上部にある「Worksheet_Change」イベントプロシージャを利用する。前回自動的に作成された「Worksheet_SelectionChange」イベントプロシージャの枠組みは削除してかまわない
図1 コードウィンドウの上部にある「Worksheet_Change」イベントプロシージャを利用する。前回自動的に作成された「Worksheet_SelectionChange」イベントプロシージャの枠組みは削除してかまわない
[画像のクリックで拡大表示]

Changeイベントプロシージャの働きを理解する

 「Worksheet_Change」は、セルの内容が変化した場合に発生するイベントプロシージャです。まずは次に示すコードを入力して、どのような働きをするかを実際の挙動をみていくことにしましょう。

【コード】
Private Sub Worksheet_Change(ByVal Target As Range)

    MsgBox Target.Address

End Sub

 実際に入力するのは、「MsgBox Target.Address」の1行です。Targetというのは、特別なセルで、このイベントが発生するタイミングで選択されていたセルを表します。Addressはセルの番地を取得するプロパティです。