下記のプログラムのエラー原因を考えてみましょう。
【プログラム①】
Sub OverFlow01()'オーバーフロー① 原因発生
Dim Total As Long
Total = 32767 + 1
MsgBox Total
End Sub 【上記プログラム実行結果】
【エラー原因説明】
下記のプログラムのエラー原因を考えてみましょう。
【プログラム②】A/B ※繰り返し処理のエラー【For Nextの場合】
'
'---For Nextの場合----------------------------
'
Sub OverFlow02_A() 'オーバーフロー②A 原因発生
Dim I As Integer
For I = 0 To 32767
'Debug.Print I
Next I
End Sub 【Do While Loopの場合】
'
'---Do While Loopの場合----------------------------
'
Sub OverFlow02_B() 'オーバーフロー②B 原因発生
Dim I As Integer
I = 0
Do While I <= 32767
I = I + 1
Loop
MsgBox I
End Sub 【上記プログラム実行結果】
【エラー原因説明】:For Nextの場合
【エラー原因説明】:Do While Loopの場合
【解決プログラム】
For Nextの場合
'
'---For Next の場合----------------------------
'
Sub OverFlow02A_Ans() '解決プログラム
Dim I As Long ’Integer ⇒ Long へ変更
For I = 0 To 32767
Debug.Print I
Next I
End Sub
・Do While Loopの場合
'
'---Do While Loopの場合----------------------------
'
Sub OverFlow02B_Ans() '解決プログラム
Dim I As Long 'Integer ⇒ Long へ変更
I = 0
Do While I <= 32767
I = I + 1
Loop
MsgBox I
End Sub