アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010使用。
データ一覧から別シートにあるフォームに
差し込み印刷をしたいのですが、
サイトを調べたところ、imogasiさんの
imogasi方式という方法にたどり着きました。
下記がすごく参考になるのですが、
http://oshiete.goo.ne.jp/qa/667710.html

この中のimogasiさんの回答にある
関数とVBAの組み合わせで差し込む方法を
応用したいと考えています。

作成したいのは、
A4サイズの中に、4つの同じフォームが
あって、そこにデータ一覧から順番に
印刷をしたいのですが、
1ページに4件分を印刷する方法が
よくわかりません。
VBA初心者の自分なりに考えてみたのが
下記のコードになりますが、
やはり違うようで、
「nextで指定された変数が不正です」とでました。
今ひとつfor~nextが理解できていない私に
どなたご教授いただけないでしょうか?

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 i1
Next i2
Next i3
Next i4
End Sub

※実際のデータは、多くのデータ量になるので
サンプルで試している段階です。

A 回答 (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)&""
・・・など
    • good
    • 0
この回答へのお礼

CoalTarさん、レスありがとうございます。
無事、解決致しました。
教えて頂いた内容を見た時は、んんん?って
感じでしたが、試してみたら
「おぉ~なるほどぉ~っ!」って思いました。
いろんな応用があるんだなぁと
すごく勉強になりました。
ありがとうございました!

お礼日時:2012/08/27 16:20

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

この回答への補足

早速の回答ありがとうございます。
教えていただいた内容で試したところ
エラーは出なくなったのですが、
セル"H8"しか値が変わりませんでした。
"F1",F8","H1"もそれぞれ変えるには
どうしたらいいでしょうか?
再度教えて頂けると嬉しいです。

補足日時:2012/08/27 13:45
    • good
    • 0
この回答へのお礼

kyboさん、
他の回答者さんに教えて頂いた内容で
解決することができました。
回答ありがとうございました。

お礼日時:2012/08/27 16:20

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