English help on website



setstaticvariable文(Ver9.24対応版)
目次− setstaticvariable文
setstaticvariable文は、静的な変数を書き込みます。(V8.00以降)
パラメータ1(文字列型)
変数名を指定します。マクロ内で使う通常の変数とは別の名前空間にあります。大文字と小文字の区別はされません。

パラメータ2(文字列型)
書き込む変数の内容を、文字列で指定します。数値は指定できません。""を指定すると消去します。

パラメータ3(数値型、省略可能)
共有するかどうかを指定します。
0 を指定するか省略すると、共有せず、現在の秀丸エディタ内だけで有効です。同じウィンドウであっても「ファイルを閉じる」「閉じて開く」「ファイル名変更」「名前を付けて保存」(saveas除く)をすると消去されます。
1 を指定すると、全ての秀丸エディタで有効です。
2 を指定すると、共有せず、現在の秀丸エディタ内だけで有効です。0指定で消去される場面でも保持されます。(V9.00以降)
-1 を指定すると、別の使い方になります。(後述)

結果コード
失敗した場合、resultは0になります。
成功した場合、resultは0以外になります。


パラメータ1とパラメータ2を共に""を指定すると、全て消去します。

静的な変数は、マクロが終了しても値を保持しています。
静的な変数用のメモリは、上限があるため、最低限の利用に留めることをお勧めします。
メモリ使用の上限は、[その他]→[動作環境]→[環境]の「詳細設定...」から指定できます。(getmaxinfoで取得)
個数の上限は、32767個までです。

取得するにはgetstaticvariableを使います。
setstaticvariableとgetstaticvariableの共有フラグは合わせておく必要があります。

message getstaticvariable( "TestA", 1 ); //前回記憶されていた情報
setstaticvariable "TestA", "全ての秀丸エディタで有効",1;
message getstaticvariable( "TestA", 1 ); //今回記憶した情報

message getstaticvariable( "TestB", 0 ); //前回記憶されていた情報
setstaticvariable "TestB", "現在の秀丸エディタで有効",0;
message getstaticvariable( "TestB", 0 ); //今回記憶した情報


別の使い方:
第3パラメータに-1を指定すると、静的ではなく、一時的な変数として扱います。(V9.12以降)
共有せず、現在の秀丸エディタだけで有効で、実行中のマクロ内だけで有効です。
マクロが終了したら消えます。
上限の設定は関係ありません。
他のマクロとの競合はありません。

参照:
getstaticvariable

setstaticvariable
Hidemaru_SetStaticVariable
hidemaru.setStaticVariable