「VBAの勉強を始めたものの、変数の意味がよく分からない…」
このように悩んだことはありませんか?

・変数ってよく聞くが結局何なの?
・変数で型を指定する理由が分からない。



この記事では 「変数」について
基礎から実践まで分かりやすく解説します。
Excel VBAを勉強していると変数という言葉をよく聞くと思います。
変数を使いこなすことで脱初級を目指しましょう!
この記事では、基本的な使い方から応用的なテクニックまで、初心者でもすぐに実践できる内容を紹介します。
ぜひ最後までお読みください。
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
VBAをしっかり学びたいけれど、「どこから始めればいいかわからない」と迷っていませんか?
そんな方には、UdemyのVBA講座がおすすめです。
動画での丁寧な解説や、実践的な学習スタイルで、初心者でも無理なく基礎から応用まで習得できます。
自己学習を進める上で、何度でも繰り返し見返せる講座は非常に心強い味方になりますよ!


\ 自分のペースで学べるVBA講座はこちら /
この記事を見て「できるようになる」こと
- VBAで変数を使用する目的が理解できるようになる。
- VBAで変数を使うための、適切な設定方法を学べる。
- VBAで変数の具体的な宣言方法を習得することができる。
- 変数を使った具体的なコード例を習得できる。
VBAの変数とは?
VBAにおける変数は、データを一時的に記憶するための箱のようなものです。
プログラム内でデータを扱う際に、変数を使うことでデータを柔軟に操作できます。


なぜ変数を使用するのか?
プログラムでは、作業を効率化するためにデータを一時的に保存しておく「変数」が欠かせません。
変数を使うことで、データを必要な場所で簡単に再利用でき、プログラム全体をスムーズに動かすことができます。
- データを保存して再利用
- 同じデータを何度も使用する場合、変数に格納しておけば、毎回データを入力する手間が省けます。
- コードの見やすさがアップ
- 変数に名前をつけることで、コードが何をしているかが明確になり、読みやすくなります。
- データの操作が簡単になる
- 変数を使うことで、数値の計算や文字列の結合などが簡単に行えます。
変数を宣言する重要性
変数は「こういうデータを使うよ!」とあらかじめプログラムに教えてあげる必要があります。
これを「変数を宣言する」と言います。
変数を宣言することで、プログラムが正しく動作し、エラーを減らすことができます。
- ミスを防ぐ
- 変数を宣言しておけば、入力ミスなどのエラーをすぐに発見できます。
- メモリの効率化
- 変数の型を明確に指定することで、プログラムがメモリを効率よく使うようになります。
- 作業が早くなる
- 変数を宣言しておくと、VBAエディタの自動補完機能が有効になり、コーディングが効率化されます。
変数の宣言を強制する設定
このことから、変数の宣言を強制するための設定を行うことをお勧めします。
この設定を有効にすると、変数を宣言しないとエラーが出るようになります。
1. VBEを開く
1)「開発」タブを選択します。
2)「Visual Basic」をクリックします。
※「Alt」⁺ 「F11」でもOKです。


2. VBEから変数を設定する
1) VBEの上部「ツール」メニューから「オプション」を選択します。
2)「エディタ」タブ内の「変数の宣言を強制する」にチェックを入れます。


この設定を有効にすると、自動的にコードの先頭に「Option Explicit」が追加されるようになります。
この表示がされている状態であると、変数を必ず宣言しないとエラーが出るようになります。
※この表示は消さないようにしてください。


さらに設定しておきたい、おすすめ設定については、別記事にまとめています。
こちらも合わせてご覧ください。
※「イミディエイトウィンドウ」や「ローカルウィンドウ」及び「コメントブロック」などの設定がおすすめです。


各変数の違い
VBAには、さまざまな種類の変数があります。
以下に代表的な変数を紹介します。
種類 | 説明 |
---|---|
通常の変数 | データを一時的に記憶するための箱。 スコープは宣言されたプロシージャ内のみ。 |
グローバル変数 | プロジェクト全体で使用可能な変数。 モジュールの先頭で宣言され、すべてのプロシージャからアクセス可能。 大規模なプログラムでデータを共有するのに便利。 |
静的変数 | プロシージャの間で値を保持する変数。 Staticキーワードを使用して宣言され、プロシージャが終了しても値が 保持される。 計算の状態を保持したい場合に使用。 |
オブジェクト変数 | オブジェクトを参照するための変数。 Setステートメントを使用してオブジェクトを代入し、プロパティや メソッドにアクセス可能。 エクセルのワークシートやセルなどの操作に使用。 |
本記事では、通常の変数について解説します。
変数の宣言方法
変数を宣言する際には、Dimステートメントを使用します。
変数の構成
変数の宣言方法は、以下の通りです。


- Dim
- 変数は、Dimステートメントを使用して宣言します。
- 変数名
- 任意の名前をつけることができます。
プログラム内でこの名前を使用してデータにアクセスします。
日本語の指定も問題ありません。
同じ適用範囲内で、同じ名前は使用することができません。
- 任意の名前をつけることができます。
- As
- 変数のデータ型を指定するために使用します。
指定しなければ、変数の型は Variant になります。
- 変数のデータ型を指定するために使用します。
- 変数の型
- 変数に格納するデータの種類を指定します。
詳細は、事項で解説を行います。
例えば、長整数型(Long)、文字列型(String)などがあります。
- 変数に格納するデータの種類を指定します。
より詳しい情報は、Microsoft公式 – 変数を宣言するを参照してみてください。
変数の型の種類
VBAでは、変数の型を指定することで、格納するデータの種類を決定します。
主な変数の型は以下の通りです。
たくさんあり、最初は全部覚えるのは大変だと思います。
まず、黄色マーカーのものを覚え、あとは必要に応じて学習していくという方法で問題ありません。
型名 | 説明 |
---|---|
Integer | 整数型。 -32,768から32,767の範囲の整数を格納できます。 |
Long | 長整数型。 -2,147,483,648から2,147,483,647の範囲の整数を格納できます。 |
Single | 単精度浮動小数点型。 小数点を含む数値を格納できます。 |
Double | 倍精度浮動小数点型。 高精度の小数点を含む数値を格納できます。 |
String | 文字列型。 文字列を格納できます。 |
Boolean | 論理型。 TrueまたはFalseの値を格納できます。 |
Date | 日付型。 日付や時刻を格納できます。 |
Currency | 通貨型。 通貨値を格納できます。 小数点以下4桁までの数値を格納でき、通貨計算に適しています。 |
Decimal | 10進型。 10進数の値を格納でき、固定小数点計算に適しています。 |
Variant | 汎用型。 どの型のデータでも格納できますが、他の型よりもメモリを多く使用します。 また、変数の型を宣言しなければ、自動でVariantになります。 |
変数を使う際の注意ポイント
変数を使用する際には、重要なポイントに気を付ける必要があります。
これを守ることで、プログラムの動作を安定させ、トラブルを未然に防ぐことができます。
- 適切なデータ型の選択
- 変数には、可能な限り適切なデータ型を指定しましょう。
※Variant型は特別な場合を除いて使用しないようにしましょう。
適切なデータ型を使わないと、メモリを無駄に使ったり、計算結果が正しくならないことがあります。
- 変数には、可能な限り適切なデータ型を指定しましょう。
変数の使用例
ここでは、具体的なコード例を通じて変数の使い方を紹介します。
以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。
VBAの基礎から応用までを効率よくしっかり学習したい方には、UdemyのVBA講座もおすすめです。
特に自己学習で進める場合、ビデオや実践例があると理解が進みやすくなります。
\ 自分のペースで学べるVBA講座はこちら /
使用例1: 変数の宣言を行ってみる
変数の型を使用した宣言方法について紹介します。
Long (長整数型) の使用
Dim Num As Long
このコードは、変数名「Num」を「Long(長整数型)」で宣言し、整数を格納できるようになります。
整数以外 (小数点や文字列) を変数に格納すると、エラーが発生します。


String (文字列型) の使用
Dim Str As String
このコードは、変数名「Str」を「String(文字列型)」で宣言し、文字列を格納できるようになります。
文字列以外 (小数点や整数) を変数に格納すると、エラーが発生します。


Variant (汎用型) の使用
Dim temp As Variant
または
Dim temp
このコードは、変数名「temp」を「Variant(汎用型)」で宣言し、整数や文字列などの様々なデータを格納できるようにします。
理由がない限り「Variant(汎用型)」の使用はおすすめしません。
「Variant(汎用型)」は多くのメモリを使用し、パフォーマンスが低下する可能性があります。
使用例2: 変数を複数宣言して、掛け算を行う
変数を複数宣言し、掛け算を行う方法を紹介します、
変数「Num1」に整数、変数「Num2」に小数点を格納し、変数「Result」に掛け算の結果を格納しています。
Option Explicit
Sub 通常の変数を使用する()
Dim Num1 As Long
Dim Num2 As Double
Dim Result As Long
Num1 = 10
Num2 = 1.5
Result = Num1 * Num2
MsgBox "結果は " & Result & " です。" & vbCrLf & _
"" & vbCrLf & _
"変数:Num1の値は、" & Num1 & "です。" & vbCrLf & _
"変数:Num2の値は、" & Num2 & "です。"
End Sub
- Option Explicit
- 変数を宣言しないと、エラーが出るようになります。
- Dim Num1 As Long
- 変数名「Num1」を「Long (長整数型)」で宣言します。
- Dim Num2 As Double
- 変数名「Num2」を「Double(倍精度浮動小数点型)」で宣言します。
- Dim Result As Long
- 変数名「Result」を「Long長整数型」で宣言します。
- Num1 = 10
- 変数名「Num1」に「10」を代入します。
- Num2 = 20
- 変数名「Num2」に「20」を代入します。
- Result = Num1 + Num2
- 「Num1」と「Num2」を掛け算したものを「Result」に代入します。
- MsgBox
- 計算結果をメッセージボックスで表示します。
処理結果は、以下のようなメッセージボックスが表示されるはずです。


このように、変数を使用することでデータの操作が簡単になり、コードの可読性も向上します。
まとめ
この記事では、VBAにおける変数の基本的な概念、使用方法、および宣言方法について詳しく説明しました。
ポイントのおさらい
さらに学ぶために
変数の基本を理解したら、次のステップとしてグローバル変数、静的変数、オブジェクト変数についても学んでみてください。
それぞれの変数には特定の用途と利点があります。
今回の記事を参考に、VBAでの変数の使用方法をマスターし、業務の効率化を図ってください。
変数を適切に使うことで、VBAプログラミングの力を最大限に発揮できます。