一生懸命書いたマクロを、いざ実行した時に、画面上にエラーが表示されることがあります。
こういった表示です。
これが起きる原因について、ご案内したいと思います。
【Excel/VBA】For~Nextを使用した繰り返し処理
こちらでは、以下の2つをご案内しました。
こういった表示です。
これが起きる原因について、ご案内したいと思います。
1.データ型には許容範囲がある
以前「データ型」というものをご案内しました。【Excel/VBA】For~Nextを使用した繰り返し処理
こちらでは、以下の2つをご案内しました。
- Integer:整数型(-32,768 ~ 32,767)
- String:文字列型(最大約20億文字)
ご覧いただいた通り、Integerは、数値の許容範囲が決まっています。
そのため、それを超える代入を行った場合、エラーが発生します。
2.オーバーフローの例
例えばですが、以下のようなマクロを起動してみましょう。
〜〜〜ここから〜〜〜
Sub Sample()
Dim i As Integer
i = 35000
End Sub
〜〜〜ここまで〜〜〜
当然ですが、Integerの最大値は32,767ですので、35,000は許容できません。
そのため、オーバーフローエラーが発生します。
3.回避方法
別のデータ型を設定してしまえば問題ありません。
Long:長整数型(-2,147,483,648~2,147,483,647の整数)
〜〜〜ここから〜〜〜
Sub Sample()
Dim i As Long
i = 35000
End Sub
〜〜〜ここまで〜〜〜
4.まとめ
データ型については、色々読むと「覚えろ派」と「覚えなくていい派」それぞれいらっしゃる模様です。
個人的には、都度確認していけば良く、データ型を暗記的に覚える必要は無いと思います。
エラーが起きた際に、適切に調べられることが大事ですね。
それではまた
コメント
コメントを投稿