• 締切済み

ExcelのVBAでA4からB5へ縮小コピーできますか

ExcelのVBAは若干使える程度です。よろしくお願いします。 A4サイズの用紙をB5サイズで印刷したいのです。印刷後は、元の A4サイズにもどしたいと思いますが、VBAの記述を教えて頂けませんか?

みんなの回答

回答No.3

こんな記述内容ではいかがでしょうか。 Sub Test()  With ActiveSheet.PageSetup   .PaperSize = xlPaperB5   .Zoom = False   .FitToPagesTall = 1   .FitToPagesWide = 1  End With  ActiveSheet.PrintOut  With ActiveSheet.PageSetup   .PaperSize = xlPaperA4   .Zoom = False   .FitToPagesTall = False   .FitToPagesWide = False  End With End Sub

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

とりあえず全体を86%に縮小すれば大体のところは対応できるように思います。 マージンがプリンタの制限以下になる場合、支障が出るかも知れませんが。 Sub printB5() Dim mg_L, mg_R, mg_T, mg_B, mg_H, mg_F As Single mg_L = PageSetup.LeftMargin mg_R = PageSetup.RightMargin mg_T = PageSetup.TopMargin mg_B = PageSetup.BottomMargin mg_H = PageSetup.HeaderMargin mg_F = PageSetup.FooterMargin PageSetup.PaperSize = xlPaperB5 PageSetup.Zoom = 86 PageSetup.LeftMargin = mg_L * 0.86 PageSetup.RightMargin = mg_R * 0.86 PageSetup.TopMargin = mg_T * 0.86 PageSetup.BottomMargin = mg_B * 0.86 PageSetup.HeaderMargin = mg_H * 0.86 PageSetup.FooterMargin = mg_F * 0.86 ActiveWindow.SelectedSheets.PrintOut PageSetup.PaperSize = xlPaperA4 PageSetup.Zoom = 100 PageSetup.LeftMargin = mg_L PageSetup.RightMargin = mg_R PageSetup.TopMargin = mg_T PageSetup.BottomMargin = mg_B PageSetup.HeaderMargin = mg_H PageSetup.FooterMargin = mg_F End Sub

N_M1321
質問者

お礼

有難うございます。やって見ます。又、追加したい部分があればご教授頂いていいでしょうか?取敢えず、頑張ってみます。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

縮小印刷はプリンタドライバの機能なので、VBAからは制御する事は出来ません。 印刷用紙の変更ならこんな感じでしょうか? ActiveSheet.PageSetup.PaperSize = xlPaperB5 ActiveSheet.PrintOut ActiveSheet.PageSetup.PaperSize = xlPaperA4

N_M1321
質問者

お礼

早速有難うございました。そうか・・・。縮小印刷はプリンタの方の設定になるのですね。と言うことは、教えて頂いた記述の前に、印刷設定することは可能ですか?

関連するQ&A