dポイントプレゼントキャンペーン実施中!

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

A 回答 (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
    • good
    • 3

とりあえず全体を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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/02 18:00

縮小印刷はプリンタドライバの機能なので、VBAからは制御する事は出来ません。



印刷用紙の変更ならこんな感じでしょうか?

ActiveSheet.PageSetup.PaperSize = xlPaperB5
ActiveSheet.PrintOut
ActiveSheet.PageSetup.PaperSize = xlPaperA4
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/02 16:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!