- ベストアンサー
Excel差し込み印刷についての方法と注意点
- Excel2010を使ってデータ一覧から別シートにフォームを差し込み印刷する方法について調べました。imogasi方式という関数とVBAの組み合わせで差し込む方法が紹介されています。A4サイズの中に4つの同じフォームを順番に印刷するためのVBAコードも試しましたが、エラーが発生しました。
- Excel差し込み印刷に関する調査結果によると、imogasi方式が参考になります。しかし、VBAについては初心者の方にとっては理解が難しいことがわかりました。A4サイズ内に4つのフォームを印刷するには、ループ処理を用いる必要があります。
- Excel2010を使った差し込み印刷についてimogasi方式がありますが、VBAの知識が必要です。質問者が試したVBAコードにはエラーが発生しました。A4サイズに4つのフォームを順番に印刷するためにはループ処理を使う必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
現状では 7*6*6*6=1512回 印刷されます。 1回目 i1=2、i2=3 i3=4 i4=5 2回目 i1=2、i2=3 i3=4 i4=9 3回目 i1=2、i2=3 i3=4 i4=13 4回目 i1=2、i2=3 i3=4 i4=17 5回目 i1=2、i2=3 i3=4 i4=21 6回目 i1=2、i2=3 i3=4 i4=25 7回目 i1=2、i2=3 i3=4 i4=29 8回目 i1=2、i2=3 i3=8 i4=5 続く *ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー*ー* Sub test02() dim i as long ’変数の定義 Worksheets("sheet1").Activate For i = 2 To 30 Step 4 '300 Cells(1, "F") = i Range("a1:H12").PrintPreview ’PrintOut Next i End Sub F1セルが順次変化しますので、データベースシートがSheet2の例として 1つ目のデータ群 =INDEX(Sheet2!$A:$A,$F$1) =INDEX(Sheet2!$B:$B,$F$1) に空白セルがあるようなら文字列にする数式して =INDEX(Sheet2!$B:$B,$F$1)&"" 2つ目のデータ群 =INDEX(Sheet2!$A:$A,$F$1+1) =INDEX(Sheet2!$B:$B,$F$1+1)&"" 3つ目のデータ群 =INDEX(Sheet2!$A:$A,$F$1+2) =INDEX(Sheet2!$B:$B,$F$1+2)&"" ・・・など
その他の回答 (1)
- kybo
- ベストアンサー率53% (349/647)
Next i4 Next i3 Next i2 Next i1 の順がすべて逆です。 一番外にあるFor i1=・・を一番そとのNext i1で閉じていきます。 Sub test01() Worksheets("sheet1").Activate For i1 = 2 To 30 Step 4 '300 For i2 = 3 To 30 Step 4 '300 For i3 = 4 To 30 Step 4 '300 For i4 = 5 To 30 Step 4 '300 Cells(1, "F") = i1 Cells(1, "H") = i2 Cells(8, "F") = i3 Cells(8, "H") = i4 Range("a1:H12").PrintOut Next i4 Next i3 Next i2 Next i1 End Sub
お礼
kyboさん、 他の回答者さんに教えて頂いた内容で 解決することができました。 回答ありがとうございました。
補足
早速の回答ありがとうございます。 教えていただいた内容で試したところ エラーは出なくなったのですが、 セル"H8"しか値が変わりませんでした。 "F1",F8","H1"もそれぞれ変えるには どうしたらいいでしょうか? 再度教えて頂けると嬉しいです。
お礼
CoalTarさん、レスありがとうございます。 無事、解決致しました。 教えて頂いた内容を見た時は、んんん?って 感じでしたが、試してみたら 「おぉ~なるほどぉ~っ!」って思いました。 いろんな応用があるんだなぁと すごく勉強になりました。 ありがとうございました!