SuperPlayRiteの変数には、適用範囲が異なる変数として,ローカル変数とグローバル変数があります。グローバル変数とローカル変数は、同じ名前でも別の変数として扱います。
※ローカル変数は、記述したマクロの主部、サブルーチン、および関数の中でのみ有効な変数です。ローカル変数の記述は、変数名の前に % を付けます。
※グローバル変数は、記述したマクロの中(マクロの主部、サブルーチン、および関数)であれば、どこからでも代入・参照ができる変数です。グローバル変数の記述は、変数名の前に $ を付けます。
イベントマクロの間で共通に参照したい変数など、さらに広い適用範囲の変数を利用したい場合は、次の方法があります。
●オブジェクトのユーザー定義プロパティとして設定する。
※例えば、フォームにDataという名前のユーザー定義プロパティを作成すると、 Dataプロパティを他のマクロからも代入・参照できます。
●ライブラリに変数保持用の共通関数を作成する。
※例えば、ライブラリにサブルーチンSetData、関数GetDataという次のマクロを作成すると、GetData()で値の取得、SetData(%data)で値の保存ができます。この関数はライブラリをロードしている間(アンロードしない限り)、有効となります。
!!ライブラリ
Sub SetData(%data)
$data = %data !! (1)
end sub
function GetData()
GetData = $data !! (2)
end function
(1)$data = %data
引数 %dataをグローバル変数 $dataに代入します。
グローバル変数は、マクロの中で共通に使用でき、値が保持されるので、サブルーチンの引数はライブラリの中で $dataの値として保存されます。
(2)GetData = $data
グローバル変数 $dataの値を関数の返り値にします。
サブルーチンSetDataで保存された値を、関数GetDataの返り値として返します。
●値を共有データとして保存する
※Deposit関数で共有データとして保存し、Withdrawで保存した値を取得します。
取得する場合、CheckDeposit関数を使い共有データの有無を確認するようにして下さい。共有データの適用範囲は、アプリケーション終了時まで有効です。
次のマクロは、共有データの設定回数を記憶して表示します。
!!メインマクロ
if CheckDeposit("実行回数") = true then !! (1)
%count = Withdraw("実行回数") !! (2)
%count = %count + 1 !! (3)
Deposit("実行回数",%count) !! (4)
MsgBox("このマクロを実行するのは" & %count & "回目です")
else
MsgBox("このマクロを実行するのは初めて")
Deposit("実行回数", 1) !! (5)
end if
(1) if CheckDeposit("実行回数") = true then
「実行回数」という名前で共有データが保存されているか確認します。
(2) %count = Withdraw("実行回数")
共有データ「実行回数」の内容を変数(%count)に代入します。
(3) %count = %count + 1
(4) Deposit("実行回数",%count)
共有データ「実行回数」の内容を変数(%count)の内容で保存します。
(5) Deposit("実行回数", 1)