整数チェック
業務でよくある入力チェックのひとつが「整数チェック」です。
例えば「数量は整数で入力」「社員番号は整数でなければならない」といったルールを守らせるために使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- 目的:
- 入力値が「整数」かどうかを判定する
- 小数や文字列が混じっていないかを確認する
- よく使う関数:
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など整数入力が必須の場面で安全に判定し、業務エラーを防ぐ仕組み を簡単に作成できます。
