dポイントプレゼントキャンペーン実施中!

VBAのDo Whileステートメントを使って九九の表をつくりたいのですが、何度やっても途中で詰まり、実行に至りません。

For NextとDo untilではできたと思うのですがDo Whileがどうしてもわからなくて…
どなたか助けてください。お願いします。

Sub 九九計算_for()
Dim i, j As Integer
For i = 1 To 9
For j = 1 To 9
Cells(i, j).Value = i * j
Next
Next
End Sub

Sub 九九計算_do_until()
j = 1
Do
i = 1
Do
Cells(j, i).Value = i * j
i = i + 1
Loop Until i = 10
j = j + 1
Loop Until j = 10
End Sub

A 回答 (4件)

Sub 九九計算_do_while()


Dim i As Integer
Dim j As Integer
j = 1
Do While j < 10
i = 1
Do While i < 10
Cells(j, i).Value = i * j
i = i + 1
Loop
j = j + 1
Loop
End Sub
    • good
    • 0

質問の主旨とは違うと思うが、2重ループにしなくても出来る。


Sub test02()
x = 0
Do While x < 81
i = Int(x / 9) + 1
j = (x Mod 9) + 1
'MsgBox i & " " & j
Cells(i, j) = i * j
x = x + 1
Loop
End Sub
    • good
    • 1
この回答へのお礼

なるほど。
ありがとうございます。

お礼日時:2011/12/06 22:34

#2です。



Sub 九九計算_while()
Dim i As Integer
Dim j As Integer
j = 1
While j < 10
i = 1
While i < 10
Cells(j, i).Value = i * j
i = i + 1
Wend
j = j + 1
Wend
End Sub

というのもある。
    • good
    • 0
この回答へのお礼

知りませんでした。
ありがとうございます。

お礼日時:2011/12/06 22:34

'変数宣言の強制。


'http://d.hatena.ne.jp/juku-cho/20090415/1239752983
'VB.NETのものなのでVBAでは殆ど使えないが、非常に参考になるので一読を。
'http://homepage1.nifty.com/rucio/main/dotnet/sho …

Option Explicit 'VB.NETでは通常 Option Explicit Onと書く

Sub 九九計算_do_while()
Dim i As Integer
Dim j As Integer
j = 1
Do
i = 1
Do
Cells(j, i).Value = i * j
i = i + 1
Loop While i <> 10 ' 条件変えただけ
j = j + 1
Loop While j <> 10 ' 条件変えただけ
End Sub
    • good
    • 0
この回答へのお礼

リンクありがとうございます。
非常に参考になりました。

お礼日時:2011/12/06 22:33

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


このQ&Aを見た人がよく見るQ&A