なぜ「マクロの記録」だけではダメなのか?
「マクロの記録」機能は非常に便利ですが、記録されるのは「そのとき行った操作」だけです。例えば、10行のデータに対して処理を記録した場合、そのマクロは永遠に10行のデータにしか対応できません。データの行数や列数が日々変わるような実務では、全く歯が立たないのです。
そこで登場するのが**「変数」**です。変数を使うことで、「データの最終行を取得して、その行まで処理を繰り返す」といった、状況に応じて変化する柔軟なマクロを作成できるようになります。これこそが、VBAを学ぶ最大のメリットと言えるでしょう。
変数とは?なぜ必要なの?
変数とは、一言でいえば「データを入れておくための一時的な箱」です。この「箱」があることで、毎回状況が変わるデータにも対応できる、賢いマクロが作れるようになります。
- データの最終行の「行番号」を覚えておく
- 繰り返し処理で「今何回目か」を数えておく
- 計算結果を一時的に保存しておく
このように、変化する値を一時的に格納し、マクロの中で再利用するために変数は不可欠です。固定の動きしかできない「記録マクロ」から脱却し、あらゆる盤面に対応できるマクロを作るための第一歩が、変数を理解することなのです。
変数の宣言:Dimを使ってみよう
VBAでは、変数を使う前に「これからこういう名前で、こういう種類のデータを入れる箱を使いますよ」と宣言するのが一般的です。この宣言に使うのがDimステートメントです。
基本構文
Dim 変数名 As データ型
この構文に沿って、具体的なコードを見ていきましょう。
上記のコードは、3つの変数を「宣言」し、それぞれに値を代入(データを入れること)して、最後に計算結果をメッセージボックスで表示する、という流れになっています。SubとEnd Subの間に、まず**①宣言部**で使う変数をすべてリストアップし、その後に**②処理部**で実際の操作を記述するのが基本です。
💡`Option Explicit`を忘れずに!
前回の記事で紹介したOption Explicitをモジュールの先頭に書いておくと、宣言していない変数を使おうとした場合にエラーで教えてくれます。タイプミスなどを防ぐために、必ず記述するようにしましょう。
覚えておくべき主要なデータ型
変数を宣言する際には、「どんな種類のデータを入れるか」を示すデータ型を指定します。たくさんありますが、まずは以下の主要なものを覚えておけば大丈夫です。
| データ型 | 格納できるデータ | 使用例 |
|---|---|---|
| Integer / Long | 整数 | Dim i As Long (ループカウンターなど) |
| String | 文字列 | Dim customerName As String (顧客名など) |
| Double | 小数 | Dim averageScore As Double (平均点など) |
| Boolean | True (真) または False (偽) | Dim isSuccess As Boolean (処理の成否フラグ) |
| Date | 日付や時刻 | Dim targetDate As Date (特定の日付) |
| Variant | あらゆる種類のデータ | Dim tempValue As Variant (型が不明な場合) |
※昔は小さな整数用にIntegerが使われましたが、最近のPCではメモリを気にする必要はほぼないため、整数の場合は基本的にLongを使うのが一般的です。
まとめ
今回は、VBAの「宣言」部分、特に変数の使い方について解説しました。
- 変数はデータを入れておくための「箱」。
Dim 変数名 As データ型で変数を「宣言」してから使う。- コードは、宣言部と処理部に分けて書くと分かりやすい。
- まずはLong, String, Doubleなどの基本的なデータ型を覚えよう。
変数を使いこなすことが、VBAマスターへの第一歩です。次回は、VBAの必須構文を学び、AI時代における効率的なコーディング方法について解説していきます!