• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの差し込み印刷設定について)

エクセルの差し込み印刷設定について

このQ&Aのポイント
  • エクセルのVLOOKUPの印刷方法についてですが、シート(1)(データ1~100)をシート(2)(個表)にVLOOKUP(1~100までの個表を番号入力でデータを表示する)で作成したあと1~100までの個表をいっきに印刷をする方法を教えてください。
  • マクロでよければ Sub test() Dim a As Range Dim i As Long With Worksheets("個表") Set a = Range("a1") '番号入力用セルの設定 For i = 1 To 100 a.Value = i ActiveSheet.PrintOut Next i End With End Sub
  • 条件が違うのが、データが1からはじまるのですが、100まで等の終わりが決まっていない点です。リストの最後の数値までを印刷する等の設定は可能でしょうか?また、それぞれのシートを3枚ずつ印刷する設定も可能でしたら知りたいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

例えば、InputBox で数字を聞くという方法はどうでしょうか。 > Application.Wait Now + TimeSerial(0, 0, 2) '2秒のウェイトを置く ウェイトの2秒が適しているかは何とも言えませんが、なるべく、マクロを止める方法は残しておいたほうがよいと思います。ウェイトはいらなくても、かならず、DoEvents は残しておいてください。 '// Sub Test1()  Dim i As Long, j As Long  Dim LastCnt As Long  Dim ret As Variant  Const PCNT As Integer = 3 '回数  With ActiveSheet 'シート   ret = Application.InputBox("枚数を入れてください。", Type:=1)   If ret < 0 Or VarType(ret) = vbBoolean Then Exit Sub   LastCnt = ret   For i = 1 To LastCnt    For j = 1 To PCNT     .Range("A1").Value = i     .PrintOut , Preview:=True     DoEvents     Application.Wait Now + TimeSerial(0, 0, 2) '2秒のウェイトを置く,なくても良い    Next j   Next i  End With End Sub

gohachan
質問者

お礼

ありがとうございます。早速試してみます。

gohachan
質問者

補足

ありがとうございました。今日やってみたところほぼ思いどおりに印刷できました。 3枚同じものを印刷する時に1枚目にはA、2枚目にはB、3枚目にはCなどと ヘッダーを入れたいと思っているのですが、それは可能でしょうか? よろしくお願いします。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

>データが1からはじまるのですが、100まで等の終わりが決まっていない 点です。リストの最後の数値までを印刷する等の設定は可能でしょうか? For i = 1 To WorksheetFunction.Max(Range("A1:A20")) のように変更する。 >また、それぞれのシートを3枚ずつ印刷する設定も可能でしたら知りたいのですが。 For i = 1 To 100 Step 3 のように最後に3ごとに数字を増加させる設定にして 番号を入力するbとcのセル番地を指定して b.Value = i +1 c,Value = i +2 の2つのコードを追加してください。

gohachan
質問者

お礼

ありがとうございます。試してみます。

関連するQ&A