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 データ型 = 値

関連ページ