VBAテクニック集 VBA一覧 変数・知識 文法・構文

【VBA】変数型の一覧と使い分け|String/Long/Boolean/Variant を解説

Excel VBAを使って業務の自動化や集計処理を行っていると、「変数型って何を選べばいいの?」「StringとVariantの違いは?」「LongってIntegerと何が違うの?」と疑問を持つ方が非常に多くいます。特にVBA初心者の場合、変数型の理解が浅いままコードを書いてしまうと、思いもよらないエラーや動作の遅延につながることがあります。

VBAでは、変数型を正しく指定することが、高速で安定したコードを書くための基本スキル です。数値処理・文字列操作・日付処理など、実務で多く使う処理は変数型によって挙動が変わるため、使い分けを理解するだけでマクロの品質が大きく向上します。

この記事では、VBAで最もよく使う
String / Long / Boolean / Variant
という4つの変数型を中心に、初心者にも分かりやすいように仕組みと使いどころを徹底解説します。また、実務での使い方、やりがちなミス、ChatGPTやRPAとの連携で役に立つ知識まで丁寧にまとめています。

目次

✅ VBAの変数型とは?どのような役割があるのか

・変数型は「値の性質」を決める重要な設定

VBAで変数は値を入れる“箱”のような存在ですが、その箱には どんな種類のデータを入れるか を事前に指定する必要があります。
それが 変数型(データ型) です。

変数型を正しく指定すると:

  • 処理が高速になる
  • メモリ消費が少なくなる
  • 意図しない型変換を防げる
  • エラーを未然に防げる

というメリットが得られます。


・Variant型を使うとどうなる?

Dim x
x = "100"

宣言のみで As を付けない場合、x は Variant型 として認識されます。

Variant型の欠点:

  • すべての型を柔軟に扱えるがその分“重い”
  • 計算が遅くなる
  • 型変換のミスが発生しやすい
  • メモリ使用量が大きい

実務コードでは Variant は最終手段であり、
可能な限り String / Long / Boolean / Date / Double を明示する方が良いです。


✅ String(文字列型)|テキストを扱う最も基本の型

・String型の基本

Dim name As String

文字列を扱うときの型です。

例:

Dim filePath As String
filePath = "C:\Data\test.xlsx"

文字列を扱う場面は非常に多く、実務では 最も使用頻度の高い変数型 といえます。


・String型が活躍する場面

  • ファイルパス
  • 氏名や商品名
  • メッセージ
  • セルの値(文字)
  • 日付を文字列として扱う場合

・String型の実務注意点

① 数値として扱いたいが String にしてしまう誤り

Dim amount As String
amount = "100"
Debug.Print amount + 10   ' → 110 ではなくエラー

この場合は LongDouble を使うべき。

② 空文字 "" と Null は異なる

システム連携では Null を受け取る場合もあり、明確に区別しないと不具合につながります。


✅ Long(整数型)|VBAで最も推奨される数値型

・Long型の基本

Dim i As Long

整数を扱うための型で、実務では Integer より Long を使うことが推奨されます。


・なぜ Integer ではなく Long を使うのか

理由:Integer の上限が小さすぎるため

  • Integer → -32,768 ~ 32,767
  • Long → -2,147,483,648 ~ 2,147,483,647

Excelの行数を扱ったり、ファイルをループしたりするとすぐ上限を超えるため、
Long を使うのが実務では常識 になっています。


・Long型が活躍する場面

  • For / Do ループのカウンタ
  • 行番号・列番号
  • データ集計で整数値を扱うとき
  • 数量・個数・カウント
  • 配列のインデックス

初心者はとりあえず「数値扱い=Long」で問題ありません。


・Long型の実務注意点

① Double と混在させない

Double は小数を扱うため、計算の順番で意図しない丸めが発生します。

② 文字列の数値は CLng() で変換すると安全

Dim amount As Long
amount = CLng("100")

✅ Boolean(真偽値型)|True/Falseを扱う特殊な型

・Boolean型の基本

Dim flg As Boolean

True(真)/ False(偽) を扱う型で、
IF文での条件判断に非常に良く使います。


・Boolean型が活躍する場面

  • 処理が成功したか
  • 条件が成立したか
  • 検索結果の判定
  • ループ継続フラグ
  • UI操作の分岐

・Boolean型の仕様(初心者が知らない落とし穴)

① 0 → False、0以外 → True

Dim flg As Boolean
flg = 5
Debug.Print flg  ' → True

この仕様を知らないと意図しない挙動に繋がることがあります。


② 空文字 "" も False になる

Dim flg As Boolean
flg = ""

VBAは自動的に型変換するため、曖昧な値が入ってしまうと
誤った True/False になる可能性があります。


③ Booleanと文字列比較のミスに注意

If flg = "True" Then   ' ← これは誤り

参考:【VBA】デバック(Debug Print)で変数の中身の確認する方法



✅ Variant(多用途型)|万能だが実務では扱いに注意

・Variant型の基本

Dim v

または

Dim v As Variant

Variantは“何でも入る箱”であり、利便性は高いものの、
初心者が誤用すると最もバグを生みやすい型 です。


・Variantが使われる場面(例外的に必要なケース)

  • セルの値をそのまま受け取るとき(型が不明)
  • 配列を受け取るとき
  • Dictionary や Collection に格納する場合
  • 型が混在するデータ処理
  • システム連携で Null が入る場合

・Variantの欠点(非常に重要)

  • 遅い
  • メモリ消費が大きい
  • 型変換ミスが起こる
  • 思わぬ動作になりやすい

実務では、Variantは必要最小限に留める のが正解です。


✅ 主要変数型の一覧表(実務で覚えるべき型)

変数型役割代表的な用途
String文字列ファイル名・セル値・名前
Long整数行番号・ループ・数量
Double小数金額・比率・計算
BooleanTrue/False分岐判断
Date日付処理日・期限
Variant多用途型未確定のデータ

✅ 実務でよくある型選択のパターン(実務者向け)

・ファイル名やセル値 → String
・カウンタ/行番号 → Long
・売上金額・比率 → Double
・検索結果の成否 → Boolean
・配列処理 → Variant

❗ 型変換の実務失敗例(初心者が必ず経験する典型例)

・数値が文字列扱いでエラー

Dim a As Long
a = "100A"   ' → 型変換エラー

・日付変換で地域設定によりエラーが出る

dt = "2024-02-01"

Windowsの地域設定によっては変換できない場合があります。


・Variantに依存して処理が遅くなる

Dim i, j

この場合、i も j も Variant であり、
処理ループが重くなりやすくなります。


✅ Option Explicit と組み合わせて型の品質を保つ

型の使い分けは Option Explicit と組み合わせることで効果を発揮します。

Option Explicit

これにより:

  • スペルミス防止
  • 型宣言漏れの防止
  • 高品質コードの実現

が可能になります。


❗ ChatGPT を使う場合も、型の知識が必須

ChatGPTは自動でVBAコードを生成してくれますが、

  • 変数の型が適切か?
  • Variantが混じっていないか?
  • 日付型は Date か?
  • ループ用は Long か?

などを精査しないと、正しく動かないケースが多いです。

型の知識は AI活用スキルにも直結 します。

参考:ChatGPTにVBAコードを正確に書かせる方法|実務レベルのマクロを安定生成するプロンプト設計術


❗ UiPathやPower Automate と連携するときも型の理解は必須

RPAの場合、Excelデータの受け渡し時に型が曖昧だと:

  • 文字列が数値に変わる
  • Null を扱えずエラー
  • Boolean の想定が崩れる

といった問題が発生します。

VBA側で型管理されていると、RPAの安定性も向上します。


✅ まとめ:変数型の理解はVBAの品質を決める最重要ポイント

本記事では、実務で最も使う変数型
String/Long/Boolean/Variant
を中心に、使い分けと落とし穴を解説しました。

VBAにおいて変数型を正しく選べるかどうかは、
コードの品質・処理速度・エラー率に大きく影響します。

今日から以下を意識すれば、コードは格段に安定します。

  • 数値は Long を使う
  • 文字列は String
  • 判定は Boolean
  • Variant は最終手段
  • Option Explicit は必ず使う

この知識は VBA のみならず、
ChatGPT や RPA ツールと組み合わせる場面でも必ず役立ちます。

変数型の理解はプログラミングの基礎であり、
あなたのマクロの品質を確実に引き上げてくれるはずです。

-VBAテクニック集, VBA一覧, 変数・知識, 文法・構文