ここにいる場合は、特定のシートに変更が加えられるたびにサブルーチンを実行する方法を学びたいと思うでしょう。この記事はまさにそれを教えます。それでは始めましょう。

ワークシート変更イベントハンドラーの構文は次のとおりです。

Private Sub worksheet_change(ByVal Target As Range)

'your code

'

'

End Sub

このコードを機能させるには、通常のモジュールではなく、ワークシートオブジェクトに記述する必要があります。

Private Sub worksheet_change(ByVal Target As Range)

Msgbox "You updated something in this sheet"

End Sub

sheet1にこのコードがあり、sheet1に何かを書き込んだり削除したりすると、「このシートの何かを更新しました」というメッセージが表示されます。

通常のモジュールでは機能しません。ただし、任意のモジュールからサブルーチンを呼び出すことができます。このセッションでも同じことを行います。

image

シナリオ:

ワークシートに変更が加えられた場合のRunExcelマクロ

image

したがって、ある条件に基づいてセルの色を変更するマクロがあるとしましょう。 Excelの条件付き書式と同じです。唯一の違いは、値が変更されたときではなく、ボタンまたは実行コマンドを使用してこのVBAコードを実行すると、セルの色が変わることです。シートに変更が加えられるたびにマクロを実行する必要があります。ここでは、VBAイベントが役立ちます。これを行うために、ワークシート変更イベントを使用します。

次の手順に従ってください:

  • プロジェクトエクスプローラーに移動し、worksheet.changeイベントをトリガーするシートをダブルクリックします。 Sheet2に変更が加えられたときにイベントをトリガーしたいので、Sheet2をダブルクリックします。ビューコードを右クリックしてクリックし、シートオブジェクトのコード書き込み領域を開くこともできます。コード領域に、このコード行を記述します。

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

ワークシート_change(Targetas Range)は、シートを含むコードに変更が加えられたときに実行される保存されたサブルーチンです。

このコードを作成すると、オブジェクトがワークシートに変更されます。左上のドロップダウンを参照してください。右上のドロップダウンでは、イベントは「変更」です。

_ドロップダウンを使用して左側のドロップダウンでワークシートを選択すると、使用可能なすべてのイベントが右側のドロップダウンに表示されます。

どちらのドロップダウンを選択しても、そのイベントのコードは自動的に書き込まれます。カスタムサブルーチンを入力するだけです。

image_ * Now just put your code in this segment. I want to call my subroutine that is in a module. So I simply call that subroutine in this worksheet event handler. My subroutine isFormatUsingVBA() in Module1

Private Sub worksheet_change(ByVal Target As Range)

Call FormatUsingVBA

End Sub

これで、sheet2に変更を加えるたびに、マクロFromatUsingVBAが実行されます。

image

そうですね、これは、ワークシート変更イベントハンドラーを使用して、シートがコンテンツを変更したときにVBAスクリプトを実行する方法です。お役に立てば幸いです。このイベントハンドラーに関して質問がある場合は、コメントセクションにその旨を記載してください。

関連記事:

link:/ events-in-vba-simplest-vba-code-to-highlight-current-row-and-column-using [現在の行と列を強調表示する最も簡単なVBAコード] * |この小さなVBAスニペットを使用してシートの現在の行と列を強調表示します。

link:/ events-in-vba-the-worksheet-events-in-excel-vba [ExcelVBAのワークシートイベント] * |ワークシートイベントは、シートで指定されたイベントが発生したときにマクロを実行する場合に非常に便利です。

link:/ events-in-vba-run-macro-if-any-change-made-on-sheet-range [指定された範囲のシートに変更が加えられた場合はマクロを実行] * |指定した範囲の値が変更されたときにマクロコードを実行するには、このVBAコードを使用します。指定された範囲で行われた変更を検出し、イベントを発生させます。

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット] |あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数] |これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。 link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] |この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。

ダッシュボードを準備するには、Countif関数が不可欠です。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法] |これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。