エクセルの条件付きコンテンツ/フォーマット印刷用画面と改ページの対
-
19-09-2019 - |
質問
私は、マスター構成ワークシートとデータとワークシートの数に基づいて発行されたブックを生成し、ExcelでVBAパブリッシングマクロを持っています。公表されたバージョンは、まだフォーマットされたまっすぐなデータである、ない式とし、特定のノートと抑制の背景情報を。基本的には、マスター構成は、ワークシートの名前のテーブルが含まれ、公表される範囲ます。
公開バージョン印刷可能にするには、ワークシートの一部が挿入された改ページを必要とします。私は同じ設定に基づいてこれらを挿入することができます実現する、と私はまた私のマスターシートにいくつかのより多くの列を追加することで、特定のワークシートの印刷の向きや余白を変更することができます。
ここでトリッキーなビットが来ます。表が公開プロセスの間に挿入されたこれらの改ページの一部を持っている場合、私は情報の行が表には、次ページに続くされていることを示す改ページの前に挿入されるようにしたいと思います。しかし、私はこれだけは、オンスクリーンディスプレイに表示されていない印刷版、に表示したい。
これを行う方法はありますか?
解決
まず、行を挿入し、ちょうど改ページの前にそれを隠します。その後、あなたはすべてを見つけるために、ブックに BeforePrint
のイベントを使用することができますそして、その中に「次のページを参照してください」テキストを持つ行、およびそれらを再表示ます。
Sub Workbook_BeforePrint(cancel as Boolean)
Dim rngCell as Range
set rngCell = ActiveSheet.UsedRange.Find("See Next Page")
while not rngCell is Nothing
if not rngCell is Nothing then
rngCell.EntireRow.Hidden = false
end if
set rngCell = ActiveSheet.UsedRange.FindNext()
loop
End Sub
これはややあなたはしかし、それはAfterPrint
がないという事実の問題にあなたが影響を受けやすいままになります、移動する必要がありましたでしょう。だから、何を行うことができますするには、次のされます:
Sub Workbook_BeforePrint(cancel as Boolean)
Application.EnableEvents = false
'Unhide rows here
if cancel then
Workbook.PrintPreview()
else
Workbook.PrintOut()
end if
'Rehide rows here
Application.EnableEvents = True
End Sub
そのcancel
は、本質的にその場合は、印刷プレビューや実際の印刷コマンドを教えてくれます注意してください。それのその非常に親切、私は考えてます。