【VBA】変数について学ぶ。使い方と基本事項!


今回は、変数について学んでいこう。変数はプログラムを組んでいく上で、欠かせないもののため、しっかり覚えましょう。
今回は変数について学んでいきます。
変数はプログラミングに欠かせないものなので、しっかりと覚えておきましょう。
変数とは?
変数とは、プログラミング言語(この場合はVBA)で値を格納するための「箱」のようなものを指します。
その値はプログラムの実行中に変更可能で、名前が付けられ、この名前を使用して値にアクセスしたり、新しい値を代入したりします。
Sub Sample()
' 変数の宣言
Dim myVariable As Integer
' 変数に値を代入
myVariable = 10
' 変数の値を使って何かをする
MsgBox myVariable ' これにより、メッセージボックスに "10" が表示されます
End Sub
上の例では、myVariable
という名前の変数を作成し、それを整数(Integer型
)として宣言しています。
次に、この変数に値 “10” を代入し、最後に、MsgBox
関数を使って変数の値を表示しています。
変数のデータ型
VBAには、さまざまなデータ型が用意されています。
データ型によって、変数がどのような値を保持できるかが決まります。代表的なデータ型は以下の通りです。
- Byte: 符号なしの8ビット (0 から 255までの整数) の値を格納します。
- Integer: 符号付きの16ビット (-32,768 から 32,767 までの整数) の値を格納します。
- Long: 符号付きの32ビット (-2,147,483,648 から 2,147,483,647 までの整数) の値を格納します。Excelの行数が多いため、行番号を格納する際によく使用されます。
- Single: 符号付きの32ビットの単精度浮動小数点数を格納します。
- Double: 符号付きの64ビットの倍精度浮動小数点数を格納します。より大きな数値や、より精密な小数を必要とする場合に使用します。
- Currency: 4桁の小数点以下の数値を持つ通貨値を格納します。通貨計算で誤差を最小限に抑えるために使用されます。
- Boolean: True または False の論理値を格納します。
- String: 文字列を格納します。文字列の長さは最大で約2億文字まで可能です。ただし、プログラムの性能により実際の上限はこれより低い場合があります。
- Variant: 任意のタイプのデータを格納することが可能です。Variant 型の変数は他のデータ型の変数よりもメモリを多く使用しますが、その柔軟性から便利に使うことができます。
- Date: 日付または時間を格納します。
これらの型は変数を宣言する際に Dim
ステートメントとともに使用します。例えば、以下のようにします。
Dim myNumber As Integer
Dim myName As String
Dim myCheck As Boolean
ここで、myNumber
は整数、myName
は文字列、myCheck
は論理値を格納するための変数として宣言されています。
これらのデータ型以外にも、VBAにはオブジェクト型(Object
)、ユーザー定義型(Type
)、配列など、さまざまな高度なデータ型も用意されています。

データ型を活用することで、安全性の高いプログラムが作れるんだにゃ。
変数のスコープ
変数には「スコープ」という、変数が参照可能なコードの範囲があります。
VBAでは、変数のスコープは変数が宣言される位置により決まり、主に3つの種類のスコープが存在します。
ローカルスコープ(Dim)
変数がサブルーチンまたは関数内で宣言されると、その変数はその手続き内(ローカル)でのみ利用可能となります。手続きが終了すると、その変数は破棄されます。これが一番一般的な変数のスコープです。
Sub MyProcedure()
Dim myVar As Integer
myVar = 10
End Sub
この例では myVar
は MyProcedure
の中でのみ参照できます。
プライベートスコープ(Private)
Private
キーワードを使用してモジュールの先頭(すべての手続きの外部)で変数を宣言すると、その変数はそのモジュール内のすべての手続きから参照できます。
Private myVar As Integer
Sub MyProcedure1()
myVar = 10
End Sub
Sub MyProcedure2()
MsgBox myVar ' これは "10" を表示します
End Sub
この例では myVar
は MyProcedure1
と MyProcedure2
の両方で参照できます。
パブリックスコープ(Public)
Public
キーワードを使用してモジュールの先頭で変数を宣言すると、その変数はそのワークブック内のすべてのモジュールから参照できます。
Public myVar As Integer
この例では myVar
は同一ワークブック内の任意の手続きから参照できます。
スコープによって、同じ名前の変数を異なるスコープで使うことが可能ですが、これは一般的には避けた方がいいです。
それは、同じ名前の変数が複数存在すると、コードが混乱し易くなり、バグの原因となるためです。
まとめ
VBAの変数は、プログラムで使用するデータを一時的に保持するための重要な概念です。
変数の宣言、データ型、スコープ、値の代入などの基本事項を理解することで、VBAでのプログラミングがより効率的かつ効果的になります。
これで、VBAの変数を使ってプログラムを作成する際に迷わずに済むことでしょう。

VBAを体系的に学びたい場合、本で学ぶことをお勧めしています。
kindle unlimited(キンドルアンリミテッド)であれば、いくつかのVBA関係の本を無料で読むこともできますよ。