[サポートFAQ]
ライン
更新日:1998.01.30 - 情報番号:007084
ライン
Q 共通変数を設定する
ライン
A FAQ改善アンケートにご協力ください
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

      実行した回数を1回カウントアップします。

    (4) Deposit("実行回数",%count)

      共有データ「実行回数」の内容を変数(%count)の内容で保存します。

    (5) Deposit("実行回数", 1)

      共有データ「実行回数」の内容に1を保存します。
ライン

この情報は、お客様のお役に立ちましたか?

送信
ライン
※本情報の内容は、予告なく変更することがあります。
※本情報の一部または全部を無断で転載及び複写することを禁止します。
※記載された会社名、製品名は、弊社または各社の登録商標もしくは商標です。
弊社の登録商標についてはこちらをご参照ください。