Excel VBA

VBA3)変数って何?Dimを使った宣言をマスターしよう!

前回の「マクロの始め方を覚えよう!」でVBAの基本的な構造を学びました。今回は、プログラミングの核心ともいえる「変数」について掘り下げていきます。変数を使えるようになると、作れるマクロの幅がぐっと広がります!

なぜ「マクロの記録」だけではダメなのか?

「マクロの記録」機能は非常に便利ですが、記録されるのは「そのとき行った操作」だけです。例えば、10行のデータに対して処理を記録した場合、そのマクロは永遠に10行のデータにしか対応できません。データの行数や列数が日々変わるような実務では、全く歯が立たないのです。

そこで登場するのが**「変数」**です。変数を使うことで、「データの最終行を取得して、その行まで処理を繰り返す」といった、状況に応じて変化する柔軟なマクロを作成できるようになります。これこそが、VBAを学ぶ最大のメリットと言えるでしょう。

変数とは?なぜ必要なの?

変数とは、一言でいえば「データを入れておくための一時的な箱」です。この「箱」があることで、毎回状況が変わるデータにも対応できる、賢いマクロが作れるようになります。

  • データの最終行の「行番号」を覚えておく
  • 繰り返し処理で「今何回目か」を数えておく
  • 計算結果を一時的に保存しておく

このように、変化する値を一時的に格納し、マクロの中で再利用するために変数は不可欠です。固定の動きしかできない「記録マクロ」から脱却し、あらゆる盤面に対応できるマクロを作るための第一歩が、変数を理解することなのです。

変数の宣言:Dimを使ってみよう

VBAでは、変数を使う前に「これからこういう名前で、こういう種類のデータを入れる箱を使いますよ」と宣言するのが一般的です。この宣言に使うのがDimステートメントです。

基本構文

Dim 変数名 As データ型

この構文に沿って、具体的なコードを見ていきましょう。

'--- 具体的なコード例 --- Sub VariableSample() ' ① 宣言部:これから使う変数を宣言する Dim price As Long ' priceという名前で「整数」を入れる箱を用意 Dim taxRate As Double ' taxRateという名前で「小数」を入れる箱を用意 Dim message As String ' messageという名前で「文字列」を入れる箱を用意 ' ② 処理部:変数にデータを入れたり、計算したりする price = 1000 taxRate = 1.1 message = "税込価格は" & (price * taxRate) & "円です。" MsgBox message End Sub

上記のコードは、3つの変数を「宣言」し、それぞれに値を代入(データを入れること)して、最後に計算結果をメッセージボックスで表示する、という流れになっています。SubEnd 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時代における効率的なコーディング方法について解説していきます!