• ベストアンサー

【エクセル】 連続印刷する際のマクロの記述について。

いつも大変お世話になっております。 エクセル2003のマクロの記述についてご教示のほど お願いいたします。 シート2にシート1の名簿から住所氏名等を落とし込み出来るように様式を作っています。 このシート3には、以下のVBAが設定してあります。 ********************************** Sub osieteinsatsu02() ' Dim start As Long Dim stp As Long Dim i As Long start = Range("a1") stp = Range("c1") For i = start To stp Range("a1") = i Sheets("Sheet2").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("sheet3").Select Next End Sub ********************************** ↑ このシートのA1の値(名簿番号)~C1の値の人のデータをシート2に落とし込み、 シート2に行き様式を一枚印刷する。 このように記述してあると思います。 ところで、様式の中に複数名をまとめたいと思いますので、例えば、A1の値を変えるときに4つ置きに変化させるにはどのように記述すれば良いのでしょうか? 1、6、11、16、、、C1の値までで止まる。 どうぞよろしくお願いします。

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

  • ベストアンサー
回答No.1

以下でOKなはずです。 For i = start To stp Step 5 以下のヘルプに記述されています。mk:@MSITStore:C:\Program%20Files\Common%20Files\Microsoft%20Shared\VBA\VBA6\1041\VBLR6.CHM::/html/vastmfor.htm

fsy
質問者

お礼

誠にありがとうございました。 効率が良くなり別の事にも活かせそうです。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

Sheet1のA2:A13に 氏名1 住所1 年齢1 出身地1 氏名2 住所2 年齢2 出身地2 氏名3 住所3 年齢3 出身地3 Sheet2が印刷シートとして B2 氏名 B4 住所 B6 年齢 B8 出身地 を印刷するとします 標準モジュールに Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") d = sh1.Range("A65536").End(xlUp).Row For i = 2 To d Step 4 sh2.Cells(2, "B") = sh1.Cells(i, "A") sh2.Cells(4, "B") = sh1.Cells(i + 1, "A") sh2.Cells(6, "B") = sh1.Cells(i + 2, "A") sh2.Cells(8, "B") = sh1.Cells(i + 3, "A") sh2.Range("A1:H10").PrintOut Next i End Sub を入れ実行(テスト済み) For i = 2 To d Step 4 With sh2 .Cells(2, "B") = sh1.Cells(i, "A") .Cells(4, "B") = sh1.Cells(i + 1, "A") .Cells(6, "B") = sh1.Cells(i + 2, "A") .Cells(8, "B") = sh1.Cells(i + 3, "A") .Range("A1:H10").PrintOut End With Next i も可能。 sh1.Cells(i + 1, "A")のところで sh1.Cells(i , "A").Offset(1,0)なども使える

fsy
質問者

お礼

ありがとうございます。大変参考になりました。

関連するQ&A