VBATips

Long型の許容範囲なのに、実行時エラー6オーバーフローしましたが出る場合の対処方法【ExcelVBA】

Long型の許容範囲なのに、実行時エラー6が発生する

データ型がLong型(-2,147,483,648~2,147,483,647の整数)で、宣言したにもかかわらず、
その数値で許容内のはずなのにエラーが出る場合があります。
----------------------------------
実行時エラー'6' 「オーバーフローしました」
----------------------------------

Long型の許容範囲なのに、実行時エラー6が発生する原因

右辺のあり方によっては実行時エラー'6' 「オーバーフローしました」が発生します。

Public Sub sample()
    
    Dim num As Long
    
    '実行時エラー'6' 「オーバーフローしました」が発生するケース
    '------------------------------------------
    '■右辺の計算結果がInteger型と判断される
    num = 30000 * 2
    
    '■Clngに入れる前の右辺の計算結果がInteger型と判断される
    num = CLng(30000 * 2)
    '------------------------------------------

    '実行時エラー'6' 「オーバーフローしました」が発生しないケース
    '------------------------------------------
    '■片方がLong型に変換しているため、Long型で判断する
    num = CLng(30000) * 2

    '■変数がLong型のため、Long型で判断する
    Dim a As Long: a = 30000
    num = a * 2
    '------------------------------------------

End Sub

注意点

  • 特にありません。

関連記事

コメント

タイトルとURLをコピーしました