Excel 2010/2013 - VBA - 印刷プレビューの前にイベントを実行する方法

Excel 2010/2013 - VBA - 印刷プレビューの前にイベントを実行する方法

私はこの問題を解決するために多くの時間を費やし、多くのフォーラムを検索しましたが、まだ解決策が見つかりません。おそらくここで誰かが答えを見つけてくれるでしょう...

ユーザーがワークブックを印刷する前に、いくつかのコード (一部のセルを変更して条件付き書式を変更したり、一部の行を非表示にするなど) を実行したいと思います。

昔は、Excel に組み込まれている _BeforePrint イベントを実行するだけでこれを実現できました。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    'Do something
End Sub

Excel 2010 以降では、ユーザーは Ctrl + P を押すか、[ファイル] -> [印刷] に移動して、印刷プレビューをクリックできます。

_BeforePrint イベントは、ユーザーが実際に [印刷] をクリックした後にのみ発生します。

したがって、マクロが実行される前に、ユーザーにはシートの印刷プレビューが表示されます。シートは印刷に適した状態ではなく、ユーザーは [印刷] ボタンを押した後にシートが印刷用に調整されることを知らないため、シートを操作し始めます。

誰かこれに対する解決策を持っていますか?

関連情報