プログラムを書く上で「変数」と「データ型」の理解は欠かせません。変数を使うことで、データを一時的に保存し、再利用や演算ができるようになります。 この記事では、変数の定義方法やデータ型、四則演算や文字列操作、スコープ(有効範囲)などを体系的に解説します。
変数はプログラムを書く上で必ず使います。
基本中の基本なのでしっかりとマスターしましょう。
と言っても全然難しいものではありません。
1. 変数とは?
VBAにおける変数とは、値を一時的に保存できる「入れ物」です。
例えば、「商品の価格を1000円にする」といった処理を行う場合、変数に値を代入すると便利です。
Dim price As Integer
price = 1000
変数の特徴
変数は以下の特徴があります。
- 任意の値を格納する事ができる
- 計算結果を格納する事ができる
- 変数を用いて計算をすることができる(数値や文字列を処理できる)
- 後から値を変更できる
2. 変数の定義とデータ型
VBAでは変数を使用する前に宣言するのが基本です。 また、VBAでは Option Explicit
を使用することで、未宣言の変数を使用した際にエラーを発生させることができます。これにより、スペルミスや意図しない変数の使用を防ぐことができます。
Option Explicit の使用方法
Option Explicit
をモジュールの先頭に記述することで、すべての変数を明示的に宣言することを強制できます。
Option Explicit Dim total As Integer total = 100 tatal = total + 50 ' ← 変数名ミス!エラー発生
このように、誤った変数名を使用するとエラーとなるため、コードの品質を向上させることができます。
変数を宣言する際には、Dim
キーワードを使用し、データ型を指定します。
データ型一覧
データ型 | 説明 | 宣言方法 |
Integer | 整数(-32,768 ~ 32,767) | Dim num As Integer |
Long | 大きな整数(2,147,483,647 まで) | Dim bigNum As Long |
Double | 小数(3.14 など) | Dim pi As Double |
String | 文字列(”Hello” など) | Dim text As String |
Boolean | 真偽値(True / False) | Dim flag As Boolean |
Variant | どんな型でもOK(非推奨) | Dim anything As Variant |
3. 変数の代入と値の上書き
変数には、値を代入(= を使用) すると、その値を保持できます。
値の代入
Dim message As String message = "こんにちは" MsgBox message
代入すると値が上書きされる
Dim count As Integer count = 10 MsgBox count ' 10を表示 count = 20 ' 10 → 20に上書き MsgBox count ' 20を表示
4. 変数を使った四則演算
変数を使えば、計算を簡単に処理できます。
A = A + B のような式の動作
Dim A As Integer, B As Integer A = 5 B = 3 A = A + B ' 5 + 3 = 8 MsgBox A ' 8と表示
その他の演算
演算 | 記述方法 |
足し算 | A + B |
引き算 | A - B |
掛け算 | A * B |
割り算 | A / B |
演算の順番(優先順位)とカッコの使い方
VBAでは、通常の数学と同じように演算の優先順位があります。
順位 | 演算子 | 内容 |
1位 | () |
カッコ内の計算を優先 |
2位 | ^ |
べき乗(累乗) |
3位 | - (単項演算) |
負の値を表す(例: -5 ) |
4位 | * / \ |
掛け算、割り算、整数の割り算 |
5位 | Mod |
剰余(あまり) |
6位 | + - |
足し算、引き算 |
カッコを使った例
Dim result As Double
result = (10 + 5) * 2
MsgBox result ' 結果は 30
5. 変数の命名規則
変数名は A
や B
など単純な名前でも動作しますが、意味のある名前を付けることで、コードの可読性が向上します。
良い変数名のポイント
-
意味のある単語を使う(totalPrice, customerName など)
-
キャメルケースを推奨(totalPrice, userName)
-
スペースや予約語は使わない
-
プロジェクト内で統一する
悪い例(意味が不明)
Dim A As Integer Dim B As String
良い例(意味が明確)
Dim salesAmount As Integer Dim salesCategory As String
主な命名規則
規則 | 例 |
---|---|
キャメルケース | totalPrice |
スネークケース | total_price |
ハンガリアン記法(古い) | intTotalPrice |
コメント