• ベストアンサー

2重ループ

下記のマクロを実行させてもB20までのセル(19回繰り返し)にしか数値を書き込んでくれません。 どうして100回繰り返さないのでしょうか? Private Sub CommandButton1_Click() For j = 1 To 10 For i = 1 To 10 Cells(i + j, 2).Value = i + j Next i Next j End Sub

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

  • ベストアンサー
  • Bickyon
  • ベストアンサー率41% (42/101)
回答No.3

Cells(i + j, 2)と書いているからです。 このループは、 jが1で、iが1~10まで→Cells(2,2)~Cells(11,2)→B2~B11 jが2で、iが1~10まで→Cells(3,2)~Cells(12,2)→B3~B12    :    : jが10で、iが1~10まで→Cells(11,2)~Cells(20,2)→B11~B20 というように動いています。 Cellsのカッコ内は(行、列)ですよ。

meikenpochi
質問者

お礼

早速の回答ありがとうございます。 分かりやすい説明ありがとうございました。

その他の回答 (2)

  • jobvba
  • ベストアンサー率50% (2/4)
回答No.2

しっかり100回繰り返しています Private Sub CommandButton1_Click() k = 0 For j = 1 To 10 For i = 1 To 10 Cells(i + j, 2).Value = i + j k = k + 1 '書き込んだ回数 Next i Next j Cells(i + j + 1, 2) = k End Sub これを実行してみてください 列Bの同じところにに連続して書き込んでいるので、 100回繰り返していないように見えてしまいます

meikenpochi
質問者

お礼

早速の回答ありがとうございます。 100回は繰り返してるのですがセルへの書きこみに問題があったようです。

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

100回繰り返してますが、 Cells(i + j, 2).Value = i + j ではなく Cells((j-1)*10+i,2).value = xxxxxxx としないと B100まで入りません。

meikenpochi
質問者

お礼

早速の回答ありがとうございます。 模範例助かりました。

関連するQ&A