Targetを利用しよう!
「イベントプロシージャはアイデア次第で、業務を大きく改善する可能性を秘めている。
じゃあ次は、これをもっと便利にすることを考えてみよう」
八木くんのマンションでは、イベントプロシージャの勉強が続いています。
「先ほどのサンプルは、ワークシートのどの部分を選択してもメッセージが表示される。
…これではちょっと、使いにくいよね。
こちらが設定したセル範囲のみ、処理が実行される方がベターだ」
「そんなこと、できるのかい?
…できるのならオーグチさんに依頼された、[規格]列のセルを選択したときだけフォームを表示し、
そこから入力させることが可能になる」
「もちろんできるとも。
星。イベントプロシージャのここに注目だよ!」
そういって、八木くんは画面を指さしました。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
「この引数Targetは、イベントが発生したときに選択されているセル範囲を、
プロシージャに渡すんだ」
「ふーん。…で、どうなるんだい?」
八木くんはシートSheet2に表を作り、新しいイベントプロシージャを作成しました。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells.Font.ColorIndex = xlAutomatic
Target.Font.ColorIndex = 3
End Sub
「…このコードはSelectionChangeイベントが発生すると、
いったんすべてのセルのフォント色を自動(黒)に設定した後、
選択されたセル範囲であるTargetのフォントだけ、3(赤)に変更する。
よくみてな……おもしろいぞ?」