VBA(Visual Basic for Applications)は、ExcelなどのOffice製品を自動化できる強力なプログラミング言語です。
その中でも「変数」は、データを一時的に保存して操作するための基本的かつ重要な仕組みです。
この記事では、VBAで変数を使う方法について、まったくの初心者でも理解できるように丁寧に解説していきます。
変数の宣言方法、データ型、代入と活用のコツなど、実例を交えてわかりやすく紹介しますので、VBAの基本をしっかり身につけたい方におすすめです。
VBAにおける変数とは?
変数とは、プログラム中で一時的に値を保存しておくための「名前付きの箱」のようなものです。
たとえば、ユーザーが入力した数値を覚えておいたり、計算結果を保存したりするために使います。
Dim message As String
message = "こんにちは!"
MsgBox message
上のコードでは、文字列を入れる変数 message
を宣言し、「こんにちは!」という文字を代入しています。
このように、変数は処理の中で値を保持し、それをあとで使うために利用されます。
変数の宣言方法
VBAでは、変数を使う前に宣言するのが基本です。
宣言には Dim
キーワードを使います。
Dim 変数名 As データ型
たとえば:
Dim count As Integer
Dim name As String
Dim price As Double
それぞれ、数値・文字列・小数を扱うための変数です。
よく使われるデータ型
VBAで使えるデータ型はいろいろありますが、ここでは代表的なものを紹介します。
データ型 | 説明 | 例 |
---|---|---|
Integer | 整数(-32,768〜32,767) | Dim age As Integer |
Long | より大きな整数 | Dim population As Long |
Double | 小数を含む数値 | Dim rate As Double |
String | 文字列 | Dim name As String |
Boolean | 真(True)か偽(False) | Dim isChecked As Boolean |
Variant | 何でも入る万能型 | Dim value As Variant |
注意: Variant
は便利ですが、型が不明確になるため、初心者のうちは基本型を明示的に使うのがおすすめです。
変数への値の代入
変数に値を入れるには、=
を使います。これは「等しい」ではなく「代入」を意味します。
Dim score As Integer
score = 90
また、以下のように変数を計算に使うこともできます。
Dim total As Integer
Dim price As Integer
Dim quantity As Integer
price = 500
quantity = 3
total = price * quantity
MsgBox "合計金額は " & total & " 円です。"
このように、計算や条件分岐に活用するためにも変数は欠かせません。
変数のスコープ(有効範囲)
変数には使える範囲(スコープ)があります。代表的な種類は以下の3つです。
1. ローカル変数
プロシージャ(SubやFunction)の中で宣言された変数。
そのプロシージャ内だけで使えます。
Sub Sample()
Dim x As Integer
x = 5
MsgBox x
End Sub
2. モジュールレベル変数
プロシージャの外に宣言された変数。
そのモジュール内のすべてのプロシージャで使えます。
Dim moduleName As String
Sub SetName()
moduleName = "営業部"
End Sub
Sub ShowName()
MsgBox moduleName
End Sub
3. グローバル変数
すべてのモジュールで使える変数。Public
を使って宣言します。
Public companyName As String
スコープの使い分けができるようになると、より実践的なコードが書けるようになります。
変数名のルールとコツ
変数名をつけるときは、以下のようなルールがあります。
- 英数字とアンダースコア(_)が使える
- 数字で始めてはいけない
- 予約語(If, Then, Subなど)は使えない
良い変数名の例:
Dim userAge As Integer
Dim totalAmount As Double
Dim isLoggedIn As Boolean
名前を見るだけで、何のための変数かがわかるようにしましょう。
型を明示する「Option Explicit」
VBAではコードの先頭に Option Explicit
を書くことが推奨されています。
Option Explicit
これを記述すると、すべての変数を宣言しなければエラーになります。
タイポ(タイプミス)によるバグを防ぐのに非常に効果的です。
実践例:簡単な売上計算マクロ
最後に、変数を使った簡単なマクロを紹介します。
Sub CalcSales()
Dim unitPrice As Double
Dim quantity As Integer
Dim total As Double
unitPrice = 1200
quantity = 5
total = unitPrice * quantity
MsgBox "売上合計は " & total & " 円です。"
End Sub
このように、値の保管・計算・表示などに変数は欠かせない存在です。
まとめ
VBAでプログラムを書く上で、変数の理解は避けて通れません。
変数の使い方を正しく学ぶことで、より柔軟でエラーの少ないコードを書くことができます。
今回の記事で解説したポイントをおさらいすると…
- 変数は「名前をつけたデータの入れ物」
Dim
で宣言し、適切なデータ型を使う- 値の代入は
=
を使う - スコープによって使える範囲が異なる
Option Explicit
で安全性を高める
最初は覚えることが多く感じるかもしれませんが、少しずつ慣れていきましょう。
次回は「条件分岐(If文)」について解説する予定です。お楽しみに!