VBA(マクロ)で、変数の使い方や宣言方法についてまとめました。
【変数とは】使い方
変数とは、値(数値、文字列など)を格納する入れ物です。
変数を使用するには、以下のように変数を宣言し、値を変数に代入します。
Dim 変数名 変数名 = 値
変数宣言には「Dim」を使用します。
変数に値を格納するには「=」を使用します。
動画解説
本ページの内容は以下動画でも解説しています。
サンプルコード
サンプルプログラムのソースコードです。
Sub test() ' 変数xとyを宣言 Dim x Dim y ' 変数xに数値を代入 x = 100 ' 変数xに文字列を代入 y = "百" ' 変数xの値をメッセージボックスに表示 MsgBox x ' 変数yの値をメッセージボックスに表示 MsgBox y End Sub
「y = “百”」ように、値を数値でなく「文字列」として扱うときはダブルクォーテーション(””)でくくってやります。
次の節では、宣言時にデータ型を指定する方法を解説しますが、本節のように「Dim 変数名」とだけ記述して宣言した場合は、変数はバリアント型(Variant)となります。
バリアント型(Variant)の変数は、数値、文字列など、どんなデータでも入れることができる万能な型です。
ただし、バグを招く原因になったりすることもあるので、面倒くさいですがデータ型もあらかじめ指定したほうが安心ではあります。
【データ型】種類・型宣言文字
VBAでは、以下のデータ型があります。
型名 | 種類(byte数) | 型宣言文字 | 値の範囲 |
---|---|---|---|
Integer | 整数型(2) | % | -32,768~32,767 |
Long | 長整数型(4) | & | -2,147,483,648~2,147,483,647 |
Single | 単精度浮動小数点数型(4) | ! | -3.402823E38~-1.401298E-45(負の数) 1.401298E-45~3.402823E38(正の数) |
Double | 倍精度浮動小数点数型(8) | # | -1.7976931348623E308~-4.94065645841247E-324(負の数) 4.94065645841247E-324~1.79769313486232E308(正の数) |
Object | オブジェクト型(4) | – | オブジェクトの参照アドレス |
String | 文字列型(10+文字列の長さ) | $ | 0~2GB |
Byte | バイト型(1) | – | 0~255 |
Boolean | ブール型(2) | – | True(真) or False(偽) |
Variant | バリアント型(16) | – | 倍精度浮動小数点数型と同じ |
Variant | バリアント型(22+文字列の長さ) | – | 文字列型(可変長)と同じ |
Date | 日付型(8) | – | 西暦100年1月1日~西暦9999年12月31日 |
Currency | 通貨型(8) | @ | -922,337,203,685,477.5808~922,337,203,685,477.5807 |
動画解説
本ページの内容は以下動画でも解説しています。
型宣言文字
型宣言文字は、データ型を示す文字です。
「変数」「定数」「関数名」の後ろに付けることで型宣言を省略できます。
ただし、バグの元になりやすいのであまり利用しません。
' 整数型(Integer)の変数xを宣言します。 Dim x%
型宣言
通常は、以下のように変数の型宣言を行います。
Dim 変数名 As 型名
利用例
Sub test() ' 変数xをLong型で宣言 Dim x As Long ' 10÷4の結果をxに代入 x = 10 / 4 ' xの値をメッセージボックスに表示(2と表示される) MsgBox x End Sub
長整数型(Long)型は整数しか格納できないため、10÷4は2.5ですが、xには整数部分の2のみ格納されてしまいます。
小数点以下の数値を扱う場合は、次のようにSingleかDoubleを使う必要があります。
Sub test() ' 変数xをSingle型で宣言 Dim x As Single ' 10÷4の結果をxに代入 x = 10 / 4 ' xの値をメッセージボックスに表示(2.5と表示される) MsgBox x End Sub
関連ページ
【VBA入門】基礎から作業自動化の応用例まで解説
VBA(マクロ)で様々な処理を自動化する方法をサンプルコード付きで入門者向けにまとめました。
コメント