2009-07-26 10 views
1

ExcelのVBA発行マクロでは、マスター構成ワークシートとデータを含む多数のワークシートに基づいて発行されたワークブックが生成されます。公開されたバージョンはストレートなデータであり、まだフォーマットされていますが、式がなく、特定のノートと背景情報が表示されません。基本的に、マスター構成には、ワークシート名と公開する範囲の表が含まれています。Excelの条件付きコンテンツと書式印刷対スクリーンとページ区切り

公開バージョンを印刷可能にするには、一部のワークシートに改ページが挿入されている必要があります。私は同じ構成に基づいてこれらを挿入することができ、また、マスターシートにいくつかの列を追加することで、特定のワークシートの印刷方向と余白を変更することもできます。

ここでトリッキーなビットが来ます。公開プロセス中に挿入されたこれらの改ページの一部がテーブルにある場合、次のページでテーブルが継続されていることを示すページ区切りの前に情報行を挿入します。しかし、私は印刷版にしか表示されず、オンスクリーンディスプレイには表示されません。

これを行う方法はありますか?

答えて

3

まず、行を挿入して改ページの直前に非表示にします。次に、ブック内の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は、本質的にあなたを教えてくれるというその場合、印刷プレビューや実際の印刷コマンド。その非常に種類、私は思う。

+0

ありがとう、私はそれを行ってあげるよ。 –