VBA講義室 > 定数・変数 > 変数とは

変数とは

定数が固定値のための箱であるとすれば、変数は変化する値を入れるための箱である。

変化値用の箱

マクロ実行中にデータを一時的に格納しておく箱のことを変数と表現する。
次のような特徴がある。

変数という概念を使いこなすことにより、幅のひろい処理が可能なマクロを作ることが出来る。

変数を理解しないことには効率のよいVBAプログラミングが組めない、と言い切ってもよい。
本格的なプログラミングを作成する人は必ず通過しなければいけない関門である。

変数の宣言

定数と同様、変数を使用する前にもあらかじめその宣言を行う必要がある。

宣言の構文

変数の宣言には次のような構文を用いる。

 

適用範囲 変数名 [As データ型]



適用範囲
変数が適用される範囲を指定。(後述)
定数名
必ず指定する。名前付けの規則にしたがって指定する。(後述)
データ型
省略可能。定数に格納するデータのタイプをAsキーワードの後に続けて指定する。省略した場合はVariant型が自動的に割り当てられるが、なるべくデータ型を規定する。

変数の名前付け規則

変数名は次の基準を満たすものであること。

宣言の場所と適用範囲・有効範囲

変数の「適用範囲」とはコードのどの範囲で変数が利用できるかを示す。
変数の「有効期間」とは変数に格納した値をいつまで保持できるかを示す。
宣言を行う場所、宣言の仕方により定数の適用範囲・有効期間が変化する。

宣言を行う場所は基本的にそれらを使用する前であればどこでもよい。
しかし、さまざまな場所に宣言が書いてあると読みにくいコードになる。
そのため、モジュール先頭部分(宣言セクション)やプロシージャ先頭部分へなるべくまとめて宣言する。

サンプル

標準モジュールModule1

 

Public PubTxt As String
Private PriTxt As String

Sub Macro1()
Dim DimLng As Long
Static StcLng As Long
Dim DimTxt As String
MsgBox "DimLngの値は" & DimLng & "です"
MsgBox "StcLngの値は" & StcLng & "です"

DimLng = 1
StcLng = StcLng + DimLng

MsgBox "DimLngの値は" & DimLng & "です"
MsgBox "StcLngの値は" & StcLng & "です"
PubTxt = "Macro1はこれまで" & StcLng & "回実行されました"
PriTxt = "Macro1はこれまで" & StcLng & "回実行されました"
DimTxt = "Macro1はこれまで" & StcLng & "回実行されました"
Call Macro2
End Sub

Sub Macro2()
MsgBox PubTxt & "(1)"
MsgBox PriTxt & "(2)"

Rem DimTxt はMacro1で宣言された変数なので
Rem Macro2 では利用できない。
Call Macro3
End Sub

標準モジュールModule2

 


Sub Macro3()
MsgBox PubTxt & "(3)"

Rem PriTxt はModule1で宣言された変数なので
Rem Module2 では利用できない。
End Sub


前(定数とは) 目次 次(データ型)


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送