Excel VBA セルを選択後に処理をしたい-SelectionChange

Excelでセルを選択したときに、何かしらの処理をしたいときがあります。

VBAで「SelectionChange」を使うと便利です。

< スポンサーリンク >

 

下図はExcel2016です。

 

構文

ワークシートで選択範囲を変更したときに発生します。

式.SelectionChange(Target)

Target=新しい選択範囲が渡されます。

 

使い方

VBEでオブジェクト欄の「(General)」と表示してあるプルダウンの部分を「Wordsheet」を選択します。

ExcelVBASelectionChange

 

プロシージャ欄に「SelectionChange」が選択され、自動で「Private Sub・・・~・・・End Sub」が書き込まれます。

※選択されていない場合は「SelectionChange」を選択する。

ExcelVBASelectionChange

 

選択されたセルの行番号、列番号をメッセージで表示してみます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "行:" & Target.Row & Chr(13) & "列:" & Target.Column
End Sub

ExcelVBAセル移動

 

セルを選択すると、行番号と列番号のメッセージが表示されました。

ExcelVBASelectionChange

 

セルが結合されている時

セルが結合されている部分をクリックすると、エラーになります。

ExcelVBASelectionChange

ExcelVBASelectionChange

 

セルが何個あるか「Target.Count」を使って調べると、結合されているのか、1つのセルなのかがわかります。

結合されているセルだったら一番左上のセルの値を、1つのセルだったらそのセルの値をメッセージで表示してみます。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim v As Variant

    If Target.Count > 1 Then
        v = Target(1).Value
    Else
        v = Target.Value
    End If

    MsgBox v
End Sub

ExcelVBASelectionChange

ExcelVBASelectionChange

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ