VBA-変数
VBA変数
変数宣言の強制
変数名の誤入力を防ぐことができるために、変数宣言を強制することが可能です。
VBAはデフォルトでは変数宣言をせずに変数を使用することができます。
モジュール(ソースコード)の先頭に以下の行を記述します。
Option Explicit
変数の宣言
Dimは「Dimension」の略です。
Basic言語のDim(多次元配列構造を宣言するときに使うメモリー取得命令)が語源という推測もあります。
Dim 変数名 As データ型
数値のデータ型
消費メモリは製品とOSバージョンによって変更されています。
Integer | 整数型 |
Long | 長整数型 |
Single | 単精度浮動小数点数型 |
Double | 倍精度浮動小数点数型 |
Currency | 通貨型 |
Excel2003ではIntegerが2Bytesしか確保されておらず、32,767を超えるとエラーとなります。
Dim num as Integer
num = 1
Dim num As Long
num = 123456789
Dim num as Single
num = 1.2345
Dim num as Double
num = 1.23456789
文字列のデータ型
格納文字列分のメモリは、文字列の代入時に自動的に確保されます。
String型アドレスとして2Bytes確保されます。
格納できる文字列数は最大約2GBとされています。
Dim errmsg As String
errmsg = "指定のフォルダが見つかりません。" & vbCrLf & filepath
日付のデータ型
日付データは「Date」を用います。
日付をダイアログに表示する際にはDate型から文字列型に変換します。
Dim current As Date
current = DateValue( Now )
Boolのデータ型
Boolean型変数の初期値は「False」です。
Dim rc As Boolean
rc = True
'処理
If (rc = False) Then Exit Function
Variantのデータ型
Variantとは全てのデータに対応した変数です。
代入データの型が不明である場合に使用します。
変数として確保する消費メモリが大きくなります。(Excel2003で16Bytes)
Dim buff As Variant
buff = Range("A1:B5").Value
Range("D1:E5").Value = buff
Objectのデータ型
Objectはオブジェクトのインスタンスを格納できるデータ型です。
クラス型のインスタンスを受け入れることができます。
Dim errinfo1 As ErrorInfo
Dim errinfo2 As Object
Set errinfo1 = New ErrorInfo
Set errinfo2 = New ErrorInfo
定数の宣言
Const 定数名 AS データ型 = 値