Excel VBAで特定のセル値変更時に処理を実行する方法
2020/09/30
カテゴリー: その他
準備
まず実行するプログラムを簡単に作ります。今回は単純に実行したらメッセージボックスを表示するプログラムです。

一応コードはこちら
Sub msg() MsgBox "実行" End Sub
特定のセルの値が変わった時に実行する処理
まず、Sheet1のコードを開きます。
上のプルダウンからWorksheetとChangeを選択して関数をセットします。
Worksheetを選択した時点でSelectionChangeの関数が出てきますが、使わないので消します。

特定のセルの値が変わったら、はじめに作ったmsbを実行するというIF文を書きます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("a1").Address Then
Call msg
End If
End Sub
試してみると

しっかりと値が変わった時に実行されました。
おまけ:処理が終わったら元のセルを選択した条件に戻る処理
処理が終わったら元のセルを選択した条件に戻る処理はたった1行追加するだけでいいので簡単です。Range("a1").Selectこの一文を追加します
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("a1").Address Then
Call msg
Range("a1").Select 'ここを追加
End If
End Sub
試してみると

うまく戻ってくれました。
バーコードリーダーによって入力して処理を実行したい時などに使えそうですね。
GitHub