Excel の列フィルターでマクロ関数をトリガーする方法はありますか??
助けてください
ありがとう。
この回答を投稿できるかどうかを考えていました。バイパスソリューションの提示による直接的な回答ではないため、気に入らない方もいらっしゃると思います。ただし、質問にすべてのプロジェクトの仮定があるわけではないので、その考えを示すことができると思います。
同意しましょう。フィルタリングを変更した後に発生するイベントがないことは誰もが知っています。ただし、1つのオプションがあります。
フィルターを変更するWorksheet_Calculate
と、イベントが発生する可能性があります ( ではありませんWorksheet_Change
)。シート内に単一の数式がある場合、マウスを使用してフィルター条件を変更するたびにそのイベントが発生します。
ステップ 1.セル ZZ1 のように、任意の単一の数式をシートに入力します。ここで =ZZ2
ステップ 2.データ範囲が Range(A1) で始まり、最初の行にタイトルがあると仮定します (図を参照)。また、その領域の下には何もないと思います。
ステップ 3.次のソリューションを Sheet1 モジュールに入れます。
Private Sub Worksheet_Calculate()
If ActiveSheet.Name = "Sheet1" Then
If Cells(Rows.Count, 1).End(xlUp).Row = 1 Then
MsgBox "No data available"
Else
MsgBox "There are filtering results"
End If
End If
End Sub
ステップ 4.フィルターを使用すると、そのイベントが発生し、次のような状況になります。
誰かがそれを気に入って使ってくれることを願っています。たとえそれが単なるバイパスのアイデアであっても。