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

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

セル選択時の処理は「SelectionChange」を使うと便利です。

< スポンサーリンク >





「SelectionChange」イベント構文

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

式.SelectionChange(Target)

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

 

「SelectionChange」イベント

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

ExcelVBASelectionChange

 

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

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

ExcelVBASelectionChange

 

VBAでセル選択時の処理例

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

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

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします