見出し画像

VBA、ChatGPTに聞いてみたらとても分かりやすくて理解が進んだ話


Sub test()
Dim i As Long, X As Long
For i = 1 To 10
X = X + 1
Next i
MsgBox X
End Sub

変数について、「初期値は0」という知識と、「カウンター変数は繰り返し処理で一定間隔ずつ増加する」という知識は持っていましたが、それらが断片的な情報として持っていただけでした。

そこでChatGPT先生に質問。

あなたは優秀な先生です。 下記のVBAをわかりやすく教えてください。 繰り返しの命令文はわかるけれど、 メッセージボックスに提示されるのは11じゃないの?

ChatGPTが分かりやすく解説してくれました

なぜ11ではないのか

ループが10回繰り返されるので、各ループでXに1が加えられます。初期値のXは0です。

1回目: X = 0 + 1 → X = 1 2回目: X = 1 + 1 → X = 2 3回目: X = 2 + 1 → X = 3 ... 10回目: X = 9 + 1 → X = 10

最終的に、ループが終わった時点でXの値は10になります。したがって、メッセージボックスに表示される値は10です。

もし、初期値のXが1であったならば、最終的な値は11になるでしょう。しかし、このコードではXの初期値が0であるため、メッセージボックスに表示されるのは10です。

ChatGPT

そっか!と納得がいきました。
非プログラマーなので、変数がいまいち理解できていなかったんですが、理解できてきました。

これからもChatGPTに頼りながらVBA勉強進めていきます!


この記事が気に入ったらサポートをしてみませんか?