Excel VBA セル入力後に処理をしたい-Change

Excelセルに何かを入力した後に、何かしらの処理をしたいときの記録です。

VBAで「Change」イベントを使います。

< スポンサーリンク >





「Change」イベントの書き方

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

ExcelVBAchange

 

プロシージャ欄を「Change」を選択します。

ExcelVBAchange

 

「SelectionChange」の部分は削除します。

ExcelVBAchange

 

「Private Sub Worksheet_Change(ByVal Target As Range)」と「End Sub」の間に処理したい内容を書きます。

Private Sub Worksheet_Change(ByVal Target As Range)
    処理
End Sub

 

「Change」イベント使用例

値が変更されたセルのアドレスをメッセージで表示してみます。

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox Target.Address
End Sub

ExcelVBAchange

ExcelVBAchange

 

「行が5~10行、列が5~10列目だったら変更されたセルのアドレスをメッセージで表示する」にしてみます。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row >= 5 And Target.Row <= 10 And Target.Column >= 5 And Target.Column <= 10 Then
        MsgBox Target.Address
    End If
End Sub

ExcelVBAchange

 

行が5~10行、列が5~10列目なのでメッセージが表示されます。

ExcelVBAchange

 

行が5~10行、列が5~10列目ではないので、メッセージは表示されません。

ExcelVBAchange

 

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