VBAにおける変数の活用事例について、こちらの記事で解説しましたが、
今回の記事では、実際に変数を使うための手順を解説します。手順を説明するうえでのポイントは「変数宣言」です。さらに「変数宣言」は「Dimステートメント」「変数名」「データ型」に構成要素を分解できますので、それぞれについて詳しく解説していきます。
変数宣言とは
変数宣言とは、「この名前の変数を、これからこういう型で使います」とAccessのVBAに伝える作業です。
伝える内容(宣言内容)は、主に次の3点です。
- 変数の適用範囲 → この変数の有効範囲は〇〇ですよ
- 変数名 → 変数の名前は〇〇ですよ
- 変数のデータ型 → この変数に格納できる値は〇〇ですよ
この記事では、特に2及び3を深堀し、1についてはこちら↓の記事をご覧ください。
変数宣言を行うことのメリット
実は変数宣言を行わなくても変数を使用することは可能です。
それでもわざわざ宣言を行うのは、メリットがあるからです。主なメリット3点を解説します。
- 誤った型のデータを代入するのを防ぐ
- 変数名のスペルミスを早期に発見できる
- 実行速度が向上する(型が明確なため)
誤った型のデータを代入するのを防ぐ
例えば、 生年月日を格納する birthDate
という文字列型
の変数があったとします。通常であれば YYYY/MM/DD
形式の日付データを格納したいところですが、文字列型
であれば、あらゆる文字や形式で自由に格納できるので、 2025/13/32
のような明らかに不正な入力もエラーとして検出できません。
birthDate
のデータ型を 日付型に設定することで、物理的に日付として認識できるデータしか格納できなくなり、 2025/13/32
と入力した場合は、日付形式として認識されないためエラーとなります。同様に、 数値型
の変数には漢字やひらがなといった数値以外の文字は格納できませんし、 通貨型
のフィールドには整数値のみが許可され、小数点を含む値は格納できません。
このように、あらかじめ変数宣言をしておくことで、意図した値を正しく格納することができます。
変数名のスペルミスを早期に発見できる
たとえば userName
という変数を宣言したのに、どこかで userNmae
と誤って書いた場合、宣言がないとエラーにならず別の変数として扱われてしまう危険があります。宣言しておけば「未定義の変数」としてエラーが表示され、スペルミスに気付くことができます。
実行速度が向上する(型が明確なため)
変数宣言により変数のデータ型を明示しない場合、その変数のデータ型はVariant型
となります。
Variant型はどんな値でも格納できる便利な型ですが、処理能率が劣る面があります。VBAはデータ型が明確な変数に対して最適化された処理を行います。特に大量ループ処理や計算処理では、Variant型
よりもデータ型を明示した方がパフォーマンスが向上します。
変数宣言の強制
Option Explicitステートメント
前項において「変数宣言を行わなくても変数を使用することは可能」と説明しましたが、宣言していない変数は使えないように、変数の宣言を強制することもできます。
変数の宣言を強制するには、モジュールの宣言セクションにOption Explicitステートメント
を記述します。

上記例では変数a
をDimステートメント
で宣言していますが、これを行っていない場合はVBAを実行した段階で、未定義エラーが発生します。


オプション設定によるOption Explicitの自動挿入
VBEの「ツール」→「オプション」→「編集」タブの[変数を宣言を強制する]のチェックボックスをオンにすると、宣言セクションにOption Explicit
が自動挿入されます。


エラーを防止するうえでも、変数宣言は必ず行う癖をつけましょう。
そういった観点からも、上記のオプション設定のオンを推奨します!
基本的な変数宣言方法
基本構文
基本的な変数宣言の基本構文は以下のとおりです。
Dim 変数名 As データ型
宣言する変数の前にDimステートメント
を配置します。

Dimステートメント
のDim
は「Dimension(次元)」の略です
実例
単一宣言
変数i
をInteger型
(整数型)で宣言するケースです。
Dim i As Integer
複数宣言
変数x
,y
,z
をそれぞれLong型
(長整数型)で宣言するケースです。
3~5行目のように、複数行に渡り記載してもOKです。
Dim x As Long, y As Long, z As Long
Dim a As Long
Dim b As Long
Dim c As Long
複数の変数を同時に宣言する場合は注意が必要です。
例えば、以下のように宣言すると、変数a
とb
は、データ型を指定していないことになるためVariant型
となります。
Dim a, b, c As Integer
データ型
データ型とは
データ型とは、変数に格納する値の種類のことです。Dimステートメント
で変数を宣言する際、As句
を使って一緒に指定します。
この指定を正しく行わないと、意図したデータが格納できないというケースにもつながります。例えば、数値を扱うデータ型を指定した変数には、文字列のデータを格納することができなくなります。
逆にいうと、冒頭のメリットでも説明しましたが、誤ったデータの格納も防ぐことができます。
データ型一覧
データ型 | 日本語名 | 内容(簡略版) | 使用例 |
---|---|---|---|
Integer | 整数型 | -32,768~32,767の整数 | ループカウンタ等 |
Long | 長整数型 | 約ー20億~20億の整数 | ID、カウント等 |
Single | 単精度浮動小数点数型 | 単精度小数 | 簡単な小数計算 |
Double | 倍精度浮動小数点数型 | 倍精度小数 | 複雑な計算 |
String | 文字列型 | 文字列 | 名前、住所等 |
Boolean | ブーリアン型 | 真偽値 | チェック有無 |
Date | 日付型 | 日付・時刻 | 取引日、採用日等 |
Currency | 通貨型 | 通貨計算用の固定小数点型 | 売上、金額計算 |
Object | オブジェクト型 | オブジェクト参照 | レコードセット等 |
Variant | バリアント型 | 何でもOK | 型が不明な場合 |
主なデータ型別の変数活用事例
Integer(整数型)
Dim a As Integer
Dim b As Integer
Dim result As Integer
a = 10
b = 5
result = a + b
MsgBox "合計は " & result
変数a
と変数b
にそれぞれ数値を代入して、その変数を足し算することで、結果をメッセージボックスに表示させる例です。
String(文字列型)
Dim first_name As String
Dim last_name As String
first_name = "小林"
last_name = "進"
MsgBox "こんにちは、" & first_name & last_name & "さん!"
String型
の変数に値を代入する場合は、ダブルコーテーション(”)で囲む必要があります。例では、文字列型の変数を連結させて、小林進
という名前をメッセージボックスに表示しています。
Boolean(ブーリアン型)
Dim isChecked As Boolean
isChecked = True ' チェックされている場合
If isChecked Then
MsgBox "チェックされています。"
Else
MsgBox "チェックされていません。"
End If
Boolean型
もよく使用される変数です。フォームのチェックボックスがON/OFF(True/False)という2択を判定する際によく用いられます。
変数名の付け方
変数名の制約
変数には基本的に自由に名前を付けることができますが、一部の記号が使用できないなど制約もあります。
こちらの記事では、命名規則の制約について解説していますので、併せてご覧ください。
変数名のケース
変数名には英語はもちろん、日本語も使用できますが、実際は英語を使用するケースが多いと思います。英語を使う場合はケースと呼ばれる、アルファベットの大文字と小文字の使い方にいくつかの種類がありますので、ご紹介します。
アッパーキャメルケース(UpperCamelCase)
英単語をつなげて、各単語の先頭文字を大文字にするケースです。Camelとはラクダという意味で、アルファベットの大文字を、ラクダのコブに例えています。Pascalという古いプログラミング言語でよく使われたことから、パスカルケースとも呼ばれます。
ロワーキャメルケース(lowerCamelCase)
ロワーキャメルケースは、アッパーキャメルケースと同様ですが、先頭文字は小文字にするケースです。ヒトコブラクダケースともいいますが、単にキャメルケースといえばこちらのことを指します。
スネークケース(snake_case)
全ての英単語は小文字で、英単語間をアンダースコアでつなぐケースです。アンダースコアを地面を這う蛇に例えています。
コンスタントケース(CONSTANT_CASE)
スネークケース同様、英単語間をアンダースコアでつなげますが、すべて大文字を使用します。こちらは、変数よりも定数の命名によく使用されます。
ケバブケース(kebabu-case)
英単語をハイフンでつなぐケースです。ケバブとはトルコの串焼き料理で、ハイフンを串焼きの串に例えています。

個人的によく使用するのはスネークケースです。理由は単語間の区切りが明確で、ファイル名が長くなっても視認性が高いからです。
どのケースを使うにしても、同一のモジュールでは一つのケースに統一することをお勧めします。
まとめ
最後に本記事の主なポイントをまとめます。
- 変数宣言とは、変数を使うための事前登録のようなもの
- 変数宣言には
Dimステートメント
を使う - 変数宣言にはデータ型を指定する重要な役割がある(
As句
) - データ型の指定をしないと自動で
Variant
になる - 宣言漏れを防ぐため、
Option Explicit
を常に書こう!(オプション設定を推奨) - 変数名はある程度自由度はあるが、一部制約もある
- 変数名に英語を使う場合は、ケースを統一しよう