Excel VBAでプログラミングを始める上で、避けて通れないのが「変数」の理解です。変数は、データを一時的に記憶しておくための「箱」のようなもので、VBAコードを効率的かつ柔軟に記述するために不可欠です。
この記事では、VBA変数の基本から、宣言方法、データの種類(型)、そして使用する上での重要なポイントをわかりやすく解説します。
1. そもそも変数とは?
変数は、数値、文字列、日付、オブジェクトなど、様々な種類のデータを格納するために使用されます。プログラムが実行される際、これらのデータはメモリ上に一時的に保持され、必要に応じて取り出したり、変更したりすることができます。
メリット
-
データの再利用: 同じ値を何度もコードに書かずに済みます。
-
コードの柔軟性: 計算結果やユーザーの入力によって値が変わる処理を記述できます。
-
可読性の向上: 意味のある名前を付けることで、コードが何をしているのか理解しやすくなります。
2. 変数の宣言(Dimステートメント)
VBAで変数を使うには、まずその変数を「こういう名前で、この種類のデータを入れますよ」と宣言する必要があります。宣言には主に Dim ステートメントを使用します。
Dim 変数名 As データ型
-
Dim: Dimension(ディメンション)の略で、「変数を宣言します」という意味です。 -
変数名: 自分で決める変数の名前です(例:i,rowCount,userName)。 -
As データ型: その変数にどのような種類のデータを格納するかを指定します。
Dim counter As Integer ‘ 整数を格納する変数
Dim totalAmount As Double ‘ 小数点を含む数値を格納する変数
Dim customerName As String ‘ 文字列を格納する変数
Dim todayDate As Date ‘ 日付と時刻を格納する変数
Option Explicit のススメ
モジュールの先頭に Option Explicit と記述することを強く推奨します。
Option Explicit
これを記述すると、宣言されていない変数の使用がエラーとなり、スペルミスなどによる意図しないバグを防ぐことができます。プロの現場では必須のテクニックです。
3. 主要なデータ型(As データ型)
格納したいデータの種類に合わせて適切なデータ型を選ぶことが重要です。適切な型を選ぶことで、メモリの節約や処理速度の向上につながります。
| データ型 | 格納できるデータ | 用途の例 |
Long |
非常に大きな整数 (±20億まで) | 行数、列数、大きな合計値 |
Integer |
小さめの整数 (±32,767まで) | 小さなループカウンター、回数 |
Double |
小数点を含む数値 | 金額、計算結果、平均値 |
String |
文字列 | 氏名、ファイルパス、メッセージ |
Boolean |
真偽値 (True または False) |
条件のON/OFF、フラグ |
Date |
日付と時刻 | 日付計算、タイムスタンプ |
Object |
Excelのオブジェクト(シート、セルなど) | Worksheet, Range, Workbook |
Variant |
すべての種類のデータ | 何が入るかわからない場合 (メモリ消費大) |
4. 変数の値の代入と利用
変数を宣言したら、= 演算子を使って値を格納(代入)します。
Sub 変数の使用例()
‘ 1. 変数の宣言
Dim rowCount As Long
Dim msg As String
Dim isFinished As Boolean
‘ 2. 値の代入
rowCount = Cells(Rows.Count, “A”).End(xlUp).Row ‘ A列の最終行番号を取得
msg = “データ処理が完了しました。”
isFinished = True
‘ 3. 変数の利用
If rowCount > 1 Then
MsgBox “データは ” & rowCount & ” 行あります。”
Else
MsgBox “データがありません。”
End If
If isFinished = True Then
Range(“A1”).Value = msg
End If
End Sub
Object変数の代入
Range や Worksheet といったオブジェクト型の変数に値を代入する場合は、Set キーワードが必要です。
Dim ws As Worksheet
‘ Setを使ってオブジェクトを参照
Set ws = ThisWorkbook.Sheets(“データ入力”)
ws.Range(“B2”).Value = “OK”
5. まとめと次のステップ
VBA変数とは、データを格納する箱であり、コードの柔軟性と可読性を高めるための基本要素です。
-
Dimステートメントで変数を使用前に宣言する。 -
Asキーワードで適切なデータ型を指定する。 -
オブジェクト変数の代入には
Setを使う。 -
バグを防ぐためにモジュールの先頭に
Option Explicitを記述する。
変数を使いこなせるようになれば、あなたのVBAコードは一気にプログラミングらしく、強力になります。
この記事を書いているのは、【Excel問題解決Lab.】筆者「16時間」を「5秒処理」化。 Excelユーザー歴25年の経歴を持つ筆者が解説。過去には、事務員さんの年間約192時間の工数削減を実現。削減できた時間は、より付加価値の高い分析業務に充てられるようになり、社内の生産性向上と業務省力化に貢献。
