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

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

Targetが渡すものとは?

「あ!!選択されたセル範囲のフォント色が変わった!」 「だろ?これは実行するたびに、新しい選択範囲を赤に変更するよ」 八木くんはそういうと、異なるセル範囲を何度も選択します。
彼が選択しなおすたびに、選択されたセル範囲のフォントが赤に変化します。

「おもしろいね!まるでゲームみたいだなあ」 「引数Targetが何なのか、これでわかったろう?
…もう一度言うけど、Targetは選択されたセル範囲をイベントプロシージャに渡す。
じゃあ、最初のイベントプロシージャに戻るよ」

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "ワークシートの選択範囲が変更されました"
End Sub

「このイベントプロシージャが実行されるセル範囲を、自由に設定するにはTargetを利用すればいい。
…たとえばセル範囲A1:E4のみ実行したいなら…」

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Row >= 1 And Target.Row <= 4 Then
        If Target.Column >= 1 And Target.Column <= 5 Then
            MsgBox "ワークシートの選択範囲が変更されました"
        End If
    End If
End Sub

「…こんな感じだ。
このとき選択されたセルの行番号が1~4、かつ列番号が1~5、
すなわちセル範囲A1:E4のみ、メッセージを表示する処理が実行される」

一覧にもどる