Excel VBA 逆引き集 | 整数チェック

Excel VBA
スポンサーリンク

整数チェック

業務でよくある入力チェックのひとつが「整数チェック」です。
例えば「数量は整数で入力」「社員番号は整数でなければならない」といったルールを守らせるために使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • 目的:
    • 入力値が「整数」かどうかを判定する
    • 小数や文字列が混じっていないかを確認する
  • よく使う関数:
    • IsNumeric(値) → 数値かどうか判定
    • Int(値) / Fix(値) → 整数部分を取り出す
    • CLng(値) → 整数型に変換(判定後に使う)

テンプレ1:整数かどうか判定

Sub CheckIntegerBasic()
    Dim val As Variant
    val = Worksheets("Input").Range("A1").Value
    
    If IsNumeric(val) Then
        ' 整数かどうか判定(小数点がないか)
        If val = Int(val) Then
            MsgBox "整数です: " & val
        Else
            MsgBox "整数ではなく小数です: " & val
        End If
    Else
        MsgBox "数値を入力してください。"
    End If
End Sub
VB
  • ポイント:
    • IsNumeric で数値判定。
    • val = Int(val) で「小数部分がないか」を確認。

テンプレ2:整数変換チェック(安全にCLng)

Sub CheckIntegerConversion()
    Dim val As Variant
    val = Worksheets("Input").Range("A2").Value
    
    If IsNumeric(val) And val = Int(val) Then
        MsgBox "整数に変換可能: " & CLng(val)
    Else
        MsgBox "整数ではありません。整数を入力してください。"
    End If
End Sub
VB
  • ポイント:
    • 判定後に CLng で整数型に変換。
    • 判定なしで変換するとエラーになることがある。

テンプレ3:複数セルの整数チェック

Sub CheckMultipleIntegers()
    Dim ws As Worksheet: Set ws = Worksheets("Input")
    Dim rng As Range, cell As Range
    
    Set rng = ws.Range("A1:A5")
    
    For Each cell In rng
        If IsNumeric(cell.Value) And cell.Value = Int(cell.Value) Then
            ' 整数OK
        Else
            MsgBox "セル " & cell.Address & " は整数ではありません。"
        End If
    Next cell
End Sub
VB
  • ポイント:
    • 複数セルをループして整数チェック。
    • 入力表の検証に便利。

テンプレ4:共通関数で整数チェック

Function IsIntegerValue(ByVal val As Variant) As Boolean
    If IsNumeric(val) Then
        If val = Int(val) Then
            IsIntegerValue = True
        Else
            IsIntegerValue = False
        End If
    Else
        IsIntegerValue = False
    End If
End Function

Sub ExampleUse()
    Dim val As Variant
    val = Worksheets("Input").Range("A3").Value
    
    If IsIntegerValue(val) Then
        MsgBox "整数です: " & val
    Else
        MsgBox "整数ではありません。"
    End If
End Sub
VB
  • ポイント:
    • 共通関数化すると再利用できる。
    • 判定ロジックを一箇所にまとめられる。

例題で練習

'例1:セルA1が整数かどうか判定
'例2:セルA2を整数に変換できるかチェック
'例3:A1~A5セルをまとめて整数チェック
'例4:共通関数で整数判定を簡単に呼び出す
VB

初心者向けポイント

  • 整数判定は「IsNumeric + Int」で確認
  • CLngで変換する前に必ず判定
  • 複数セルチェックはループで処理
  • 共通関数化すると便利
  • エラーメッセージは分かりやすく → ユーザーが修正しやすい

👉 この「整数チェックテンプレ」を覚えておけば、Excel VBAで 数量やIDなど整数入力が必須の場面で安全に判定し、業務エラーを防ぐ仕組み を簡単に作成できます。

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