トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第6話「イベントプロシージャの可能性」1/4 :Targetを利用しよう!

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第6話 「イベントプロシージャの可能性」

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(赤)に変更する。
よくみてな……おもしろいぞ?」

一覧にもどる