2013/02/03

Access 2010 / 2013 SetLocalVar/ローカル変数の設定

ひとつのマクロで使用できるローカル変数は最大256まで。そこまで消費することはないだろうけど。。。
使い方はいたって簡単。ちょっと置いといて的な値があるとき使う。
 値は "式引数" で設定するから、文字列や日付時間である場合それなりの手続きで設定すればよい。
 では、SetLocalVar/ローカル変数の設定マクロアクションをVBAに変換した場合どうなるか見てみる。あたりまえだけど、Variant 変数となる。
'------------------------------------------------------------
' Macro1
'
'------------------------------------------------------------
Function Macro1()

    Dim lclNum As Variant
    Dim lclStr As Variant
    Dim lclDatetime As Variant
    Dim lclNow As Variant
    Dim lclVar As Variant
    lclNum = 2013
    lclStr = "Strings"
    lclDatetime = #2/2/2013 12:00:00 PM#
    lclNow = Now()
    lclVar = Forms!Form1!Text0

End Function
 変数スコープの範囲を確認
同じ名前のローカル変数はそれぞれ別の変数
 値をインクリメントするような使い方も問題ないが、以下のような状態だと意図する結果はでない。設定されていないローカル変数を参照した場合の戻り値は Null だからである。予め値を設定するか Nz 関数用いると解決する。
この場合、ローカル変数には Null が設定される。
  以下、些細なこと。
数字から始まるローカル変数名
その他の参照方法

0 件のコメント: