2016-03-23 16 views
0

複数の場所から複数のシートのExcelワークブックをコンパイルしたところがあります。問題は、彼らはすべて異なるページ設定、印刷領域などを持っていることです。印刷領域が主なものなので、私はドキュメント内のすべてのシートを通過し、印刷領域を変更するためにVBAでループを設定しようとしています1ページに "表示されます。ここで私が作成して作業しているものは、VBAで動作しますが、実際には何も起こりません。 :/。また、ページ内で一元化する方法はありますか?ページに収まるだけでなく、ページに収まるようにフィットしますか?ワークシートのページ設定/印刷領域を変更するループ

Sub WsLoop() 

Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     With ws.PageSetup 
     .Orientation = xlLandscape 
     .FitToPagesWide = 1 
     .FitToPagesTall = 1 
    End With 
    Next 

End Sub 
+1

'PageSetup'で作業するには、ページをアクティブにする必要があることがほとんどあります。したがって、 'For each ws ...'の後ろに 'ws.Activate'を置いてください。センタリングについては、 'CenterVertically'と' CenterHorizo​​ntally'オプションを参照してください( 'True'に設定してください)。 –

+0

ヒントをありがとう、今すぐ行って、動作するかどうかを見てください:) – IIJHFII

答えて

0
  1. エクセル2010での私のために.Orientation作品 ActiveWorkbookのご利用には問題があるかもしれません。期待どおりに 別のブックを選択している可能性があります。ブック名を に選択してください。 .FitToPagesWide.FitToPagesTall機能するためには
  2. 、 が彼らの前に、次置く: スコット

で述べたように PageSetUpオブジェクトの.Zoom = False

  • .CenterHorizontally.CenterVerticallyプロパティは驚きなしで動作するはずです私はExcelで試してみました2010とこれは動作します。 .FitToPagesWide.FitToPagesTallの場合は、[ファイル]メニューの[印刷]をクリックすると表示されません。左側のサブメニューと右側のプレビューの間のペインの下部にある「ページ設定」リンクをクリックすると、それらが表示されます。

  • 関連する問題