【ExcelVBA】Changeメソッド セル変更時に処理を実行

こんなあなたにおすすめ

・Excel VBAでセルの値を変更したときに、処理を実行したい

Excel VBAを使っていると、セルの値を変更したときに処理を実行したいということが多いのではないでしょうか。
今回は、ワークシートのChaneイベントを使った方法を解説します。

セルの値を変更したときに、処理を実行したい

冒頭でご紹介した通り、Chaneイベントを使うことでセルの値を変更したときに処理を実行することができます。

基本構文は下記の通りです。

Private Sub Worksheet_Change(ByVal Target As Range)

    'ここに実行したい処理を入力する

End Sub

例文は下記の通りです。

Private Sub Worksheet_Change(ByVal Target As Range)

    MsgBox "セルの値が変更されました"

End Sub

セルに値を入力したり、消去したりすると下図のようにメッセージボックスが表示されます。

Changeメソッド、Intersectメソッド、If文を組み合わせることで、特定のセルが更新されたときのみ処理を実行することができます。

応用例は下記の通りです。

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Intersect(Target, Range("A1:C3")) Is Nothing Then
        Exit Sub
    Else
        MsgBox "セルの値が変更されました"
    End If
End Sub

塗りつぶした範囲を更新したときに、処理が実行される。

シート全体ではなく、特定のセルを変更したときに処理を実行したいときにここで解説した方法がおすすめです。

まとめ

ここまでChangeメソッドの使い方を解説しました。
セルの値を変更したときに自動で処理を実行したいときにChangeメソッドを使ってみましょう。

If文と組み合わせることでさらに使える幅が広がります。
If文について知りたい方は、関連記事をご参照ください。
>>【ExcelVBA】If文 条件分岐

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です