定数が固定値のための箱であるとすれば、変数は変化する値を入れるための箱である。
マクロ実行中にデータを一時的に格納しておく箱のことを変数と表現する。
次のような特徴がある。
変数という概念を使いこなすことにより、幅のひろい処理が可能なマクロを作ることが出来る。
変数を理解しないことには効率のよいVBAプログラミングが組めない、と言い切ってもよい。
本格的なプログラミングを作成する人は必ず通過しなければいけない関門である。
定数と同様、変数を使用する前にもあらかじめその宣言を行う必要がある。
変数の宣言には次のような構文を用いる。
適用範囲 変数名 [As データ型]
変数名は次の基準を満たすものであること。
変数の「適用範囲」とはコードのどの範囲で変数が利用できるかを示す。
変数の「有効期間」とは変数に格納した値をいつまで保持できるかを示す。
宣言を行う場所、宣言の仕方により定数の適用範囲・有効期間が変化する。
宣言を行う場所は基本的にそれらを使用する前であればどこでもよい。
しかし、さまざまな場所に宣言が書いてあると読みにくいコードになる。
そのため、モジュール先頭部分(宣言セクション)やプロシージャ先頭部分へなるべくまとめて宣言する。
標準モジュール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] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||