
Excel VBA 「オーバーフローしました」というエラーは、変数や計算結果がそのデータ型の許容範囲を超えたときに発生します。データ型ごとに格納できる範囲が決まっており、それを超えた場合にこのエラーが表示されます。具体的な使い方や、注意点やサンプルコードを紹介します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBA 「オーバーフローしました」発生シーン
以下のようなシーンで発生します。
・ループ処理や計算を行う際
・大きな数値を扱う際
・関数やプロシージャでの値の受け渡し
Excel VBA 「オーバーフローしました」防ぎ方とポイント
オーバーフローエラーを防ぐためには、適切なデータ型を使用し、数値がその範囲内に収まるようにします。
・データ型の選定には注意が必要です。例えば、Integer型は -32,768 から 32,767 までの範囲しか扱えません。
・大きな数値を扱う場合には、Long型やDouble型を使用することを検討します。
・変数の値が意図せず大きくなる場合がありますので、値の範囲を事前にチェックすることが重要です。
Excel VBA 「オーバーフローしました」を防ぐサンプルコード
Option Explicit
Sub OverflowExample()
Dim i As Integer
i = 32768 ' Integer型の範囲を超える値を代入しようとする
End Sub
このコードは、i がInteger型であるため、32768を代入しようとするとオーバーフローエラーが発生します。
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
Option Explicit
Sub OverflowSolution()
Dim i As Long
i = 32768 ' Long型はより大きな数値を扱える
End Sub
このコードでは、i をLong型に変更することで、32768を代入してもエラーが発生しません。
Option Explicit
Sub OverflowCheck()
Dim i As Long
Dim inputValue As Long
inputValue = 32768 ' 任意の数値を入力
If inputValue < -2147483648# Or inputValue > 2147483647 Then
MsgBox "数値が範囲外です"
Else
i = inputValue
End If
End Sub
このコードでは、数値がLong型の範囲内であるかをチェックし、範囲外の場合はメッセージボックスを表示します。
オーバーフローエラーはデータ型の範囲を超えた値を扱ったときに発生します。適切なデータ型を選び、数値の範囲をチェックすると、エラーを防ぐことができます。初心者でも基本的なデータ型の理解と適切な使い方をマスターすると、VBAのプログラムを安定して動作させることができます。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。