ExcelVBAでコードを書いていると、必ず直面するのが 「どの変数の型を使えばいいのか分からない」 という問題です。
VBAには多くの変数型が用意されていますが、実務で本当に使われる型は限られています。
一方で、
- なんとなく Variant を使っている
- Integer と Long の違いが曖昧
- Boolean や Date を正しく使えていない
- 配列やオブジェクト型がよく分からない
といった状態のままでは、
エラーが起きやすく、保守しづらいコードになってしまいます。
本記事では、「VBA 変数 型 一覧 日本語」という検索意図に合わせて、
VBAで使用できる変数型を 日本語で分かりやすく一覧化し、
それぞれの用途・特徴・実務での使い分けまで丁寧に解説します。
目次
- ✅ VBAにおける「変数の型」とは何か
- ・変数の型を指定する意味
- ✅ VBAで使える変数型の全体一覧(日本語)
- ✅ 数値を扱う変数型の一覧と使い分け
- ・Byte(バイト型)
- ・Integer(整数型)
- ・Long(長整数型)
- ・Single / Double(小数型)
- ・Currency(通貨型)
- ✅ 文字列を扱う変数型
- ・String(文字列型)
- ✅ 日付・時刻を扱う変数型
- ・Date(日付型)
- ✅ 真偽値(条件判定)を扱う型
- ・Boolean(真偽型)
- ✅ オブジェクトを扱う変数型
- ・Object(汎用オブジェクト型)
- ・Workbook / Worksheet / Range など
- ✅ Variant(バリアント型)とは何か
- ・Variantの特徴
- ・Variantを使うべき場面
- ✅ 配列を扱う変数型
- ・固定長配列
- ・動的配列
- ✅ ユーザー定義型(Type)
- ・Typeを使った構造体
- ✅ 型指定を間違えたときに起こる問題
- ・暗黙の型変換
- ✅ 実務でよく使われる変数型ランキング
- ✅ 変数型とOption Explicitの関係
- ✅ 型選びで迷ったときの判断基準
- ✅ VBAの変数型を理解すると得られるメリット
- ✅ まとめ:VBA変数型を正しく使うことが品質を決める
✅ VBAにおける「変数の型」とは何か
・変数の型を指定する意味
VBAにおける変数の型とは、
「その変数に何を入れるのか」をExcelに伝えるための情報です。
型を指定することで、
- 処理速度が安定する
- 計算ミスや変換エラーを防げる
- コードの意図が明確になる
といったメリットがあります。
そのため、実務では 必ず型を指定する のが基本です。
✅ VBAで使える変数型の全体一覧(日本語)
VBAで使用できる主な変数型を、用途別に整理すると次のようになります。
- 数値を扱う型
- 文字列を扱う型
- 日付・時刻を扱う型
- 真偽値を扱う型
- オブジェクトを扱う型
- 汎用型(Variant)
- 配列・特殊用途の型
以下で、それぞれを詳しく見ていきます。
✅ 数値を扱う変数型の一覧と使い分け
・Byte(バイト型)
Dim num As Byte
- 0 ~ 255 の整数を扱える型
- 使用頻度は低い
- 実務ではほぼ使われない
・Integer(整数型)
Dim i As Integer
- -32,768 ~ 32,767 の整数
- 昔はよく使われていた
- 現在の実務では 非推奨
理由:範囲が狭く、オーバーフローの危険があるため
・Long(長整数型)
Dim cnt As Long
- -2,147,483,648 ~ 2,147,483,647
- 最も使用頻度が高い数値型
- 行番号・件数・ループ変数に最適
👉 迷ったら Long を使うのが実務の基本です。
・Single / Double(小数型)
Dim rate As Double
- 小数点を含む数値を扱う
- Single より Double の方が精度が高い
- 実務では Double が主流
・Currency(通貨型)
Dim price As Currency
- 金額計算専用の型
- 丸め誤差が起きにくい
- 会計・金額処理では有効
✅ 文字列を扱う変数型
・String(文字列型)
Dim name As String
- 文字・文章・セルの文字列を扱う
- 使用頻度は非常に高い
- メッセージ・ファイル名・シート名などに使用
👉 文字を扱うなら String 一択
参考:【VBA】変数の宣言はなぜ必要?書かないと何が起こるのかを徹底解説
✅ 日付・時刻を扱う変数型
・Date(日付型)
Dim dt As Date
- 日付・時刻を同時に扱える
- 内部的には数値として管理
- 比較・加算・減算が可能
実務では、
「文字列としての日付」ではなく
Date型として扱うことが重要です。
✅ 真偽値(条件判定)を扱う型
・Boolean(真偽型)
Dim flg As Boolean
- True / False を扱う
- 条件判定やフラグ管理に最適
- コードの可読性が大きく向上する
参考:【VBA】条件に一致した行だけ削除する方法(If × Delete)|不要データを効率的に整理する実務テクニック
✅ オブジェクトを扱う変数型
・Object(汎用オブジェクト型)
Dim ws As Object
- さまざまなオブジェクトを代入可能
- 型が曖昧になる
- 実務では極力避けたい
・Workbook / Worksheet / Range など
Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Range
- Excelオブジェクト専用の型
- 必ず明示的に指定するのが実務ルール
✅ Variant(バリアント型)とは何か
・Variantの特徴
Dim v As Variant
- どんな型でも入れられる
- As を省略すると自動的に Variant になる
- 処理が遅く、バグの温床になりやすい
・Variantを使うべき場面
- 型が実行時まで確定しない
- 配列の戻り値を受け取る
- 特殊なデータ処理
👉 安易に使うのはNG
✅ 配列を扱う変数型
・固定長配列
Dim arr(1 To 10) As Long
・動的配列
Dim arr() As String
ReDim arr(1 To 5)
- 複数データをまとめて扱える
- 処理速度改善に有効
- 実務では非常に重要
参考:【VBA】配列と変数の違いを初心者向けにわかりやすく徹底解説
✅ ユーザー定義型(Type)
・Typeを使った構造体
Type UserData
ID As Long
Name As String
End Type
- 複数のデータを1つの単位として管理
- 大規模処理で有効
- 使用頻度は中〜低
✅ 型指定を間違えたときに起こる問題
・暗黙の型変換
Dim x As Long
x = "100"
一見動きますが、
実務では 意図しない変換によるバグ の原因になります。
✅ 実務でよく使われる変数型ランキング
- Long
- String
- Boolean
- Date
- Double
- Range / Worksheet
👉 この6種類を正しく使えれば、実務の8割は対応できます。
✅ 変数型とOption Explicitの関係
Option Explicit
- すべての変数宣言を強制
- 型ミス・スペルミスを防止
- 実務では 必須設定
✅ 型選びで迷ったときの判断基準
- 数値 → Long
- 小数 → Double
- 文字 → String
- 条件 → Boolean
- 日付 → Date
- Excel操作 → 専用オブジェクト型
✅ VBAの変数型を理解すると得られるメリット
- エラーが激減する
- 処理速度が向上する
- コードの意図が明確になる
- 他人が読んでも理解しやすくなる
✅ まとめ:VBA変数型を正しく使うことが品質を決める
- VBAには多くの変数型があるが、実務で使う型は限られる
- Variantの乱用は避ける
- Long / String / Boolean / Date を中心に使う
- 型指定はコード品質と保守性に直結する
- Option Explicit は必須
変数型の理解は、
VBAの基礎でありながら、最も差が出るポイントです。
この記事を参考に、
「なんとなく動くVBA」から
「安心して使えるVBA」へステップアップしてください。