Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7 Professional : Excel 2016)
エクセル マクロ 印刷の枚数 変えたい
投稿日時: 18/12/26 09:22:44
投稿者: Keikochanchan

このプログラム
自動的に2枚ずつ印刷されますが、1枚にするにはどうしたらいいですか?
 
Sub main_Proc()
   Dim i As Integer 'ループ用カウンタ
  
   Sheets("データ入力").Select
   i = piDataStartRow 'データ開始行のセット(初期値)
  
   Do While Trim(ActiveSheet.Cells(i, piCtlKeyCol)) <> ""
      Sheets("データ入力").Select
      Rows(i & ":" & i).Select
      Selection.Copy
      Rows(piDataPasteRow & ":" & piDataPasteRow).Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  
      Sheets("出力用").Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=True,
  
      i = i + 1
      Sheets("データ入力").Select
   Loop
End Sub

回答
投稿日時: 18/12/26 13:40:40
投稿者: WinArrow
投稿者のウェブサイトに移動

中途半端なコードでは、何も答えられません。
コンパイルラーが出ないようなコードを掲示してください。

回答
投稿日時: 18/12/26 20:45:46
投稿者: simple

繰り返しの中で印刷しているので、繰り返しの回数だけは印刷されますよね。
どのあたりが不思議なんでしょうか。
繰り返しといっても一回で直ぐに抜けるはずなんですか?
そのあたりの説明もお願いします。
 
貼り付け先が"出力シート"ではなく"データ入力"になっていますよね。
そのあたりが想定外の結果になっているんでしょうか。

回答
投稿日時: 18/12/27 11:51:26
投稿者: Suzu

IgnorePrintAreas:=True
 
https://docs.microsoft.com/ja-jp/office/vba/api/excel.sheets.printout
True の場合、印刷範囲を無視してオブジェクト全体を印刷します。
 
印刷範囲外に、印刷対象となりえる物があるのでは?

トピックに返信