# 変数の設定と使用
$set 変数名=値 '.変数の値を設定
変数の設定
$set 変数名+=値 '変数に値を加算 $set 変数名=%変数名%+値 と同じ
$set 変数名-=値 '変数に値を減算(同様に $set 変数名*=値 $set 変数名/=値 も可)
変数の使用 − 変数名の前後を「%」で囲む
%変数%
$set 変数A += 5 '変数Aに5を加算
$set 変数A = %変数B% + 5 '変数Bに5を足した値を変数Aに設定
$set 変数A = 関数(param) '関数の戻り値を変数にセット
例:
# OSバージョン判定
#
$set OsVer=GetOsVersion() 'OSバージョンを変数名「OsVer」に設定
$if %OsVer% == 5.1 '変数の値を判定
# 関数定義 $function 関数名(パラメータ1,パラメータ2,・・) 〜 $return 〜 $end-function
#
# 関数は再帰呼び出し可
# パラメータ、および返却値は全てバリアント型
$function func(p1,p2,,) '.関数定義 パラメータ数は無制限
〜 処理 〜
$return 戻り値 '.値を返却(省略可)
$end-function
例1:
# メッセージ表示−戻り値無し
$call DspMsg("WindowsXP",72) 'メッセージ表示
$end 'プログラム終了
#---------------------------
# メッセージ表示関数
$function DspMsg(Msg,FontSize) '関数定義
/show-message %Msg%,2,,,,,,%FontSize% ' 指定フォントサイズでメッセージ表示
$return 'リターン
例2:
# 二乗平均を求める−戻り値あり
$set p1=3
$set p2=4
$set rc=SqrtAvg(%p1%,%p2%) '二乗平均を求めて変数にセット
/show-message "%p1%と%p2%二乗平均 Format(%rc%,'0.000')",5,,,,,,72 '小数点以下3桁に整形して表示
$end 'プログラム終了
#---------------------------
# 二乗平均を求める関数
$function SqrtAvg(n1,n2) '関数定義
$set rc=Sqr((%n1%*%n1%+%n2%*%n2%)/2) ' 二乗平均を求めて変数にセット
$return %rc% '返却値をリターン − 下記のように書いても可
# $function SqrtAvg(n1,n2) '関数定義
# $return Sqr((%n1%*%n1%+%n2%*%n2%)/2) '計算結果を返却
$end-function
# 関数コール $call 関数名(パラメータ1,パラメータ2,・・)
#
# 関数をパラメータ渡しで呼び出す
$call func(p1,p2,,) '.関数呼び出し
例:
# 関数呼び出し
#
$call DspMsg("WindowsXP",36)
$end
#---------------------------
# メッセージ表示関数
$function DspMsg(Msg,FontSize)
/show-message %Msg%,2,,,,,,%FontSize%
$return
$end-function
# ジャンプ $goto ラベル名
#
# ラベル名を指定して処理ステップを移行する
$goto Label '.指定ラベルにジャンプする
' 末尾が「:」となっている文字列をラベルとして認識
例:
Retry: $set n=InputBox("nを入力") 'ラベル定義 入力要求
$if %n% == "" $end 'キャンセル → 終了
$if IsNumeric(%n%) == 0 $goto Retry '入力値が数値でなければ、再入力要求
# インクルード $include<ファイル名>
#
# $include により、分割されたファイルを結合して、1つのファイルとして扱うことができる
インクルードとしてファイルを分割することにより、共通モジュール(関数)として再利用することが可能となる。
インクルードファイルはソースファイル上では確認できないが、
デバッグウィンドウでは展開されるので、全体ソースの確認やデバッグが可能である。
例:本体とインクルードファイル(func.dat)を分割して作成
本体より、インクルードファイルを呼び出す。
#=====================================================
# プログラム本体
#----------------------------------------------------
$call DspMsg("二乗平均を求めます")
$end '=============================== プログラム終了
$include<func.dat> 'インクルードファイル呼び出し
インクルードファイル func.dat
#-----------------------------------------------------
# メッセージ表示
# パラメータ
# Msg:文言 FontSize:フォントサイズ FontColor:文字色
#-----------------------------------------------------
$function DspMsg(Msg,FontSize,FontColor)
/message-show %Msg%,2,,,,,,%FontSize%,%FontColor%
$return
$end-function
# 条件判定 $if 〜 $elseif 〜 $else 〜 $endif
#
# 条件により実行処理を変更する
$if 条件式1 '.条件判定
条件式1が真の場合に実行すべきコマンド
$elseif 条件式2 '.IF条件が偽の場合
条件式1が偽、条件式2が真の場合に実行すべきコマンド
$else '.全ての条件判定が偽の場合
全ての条件式が偽の場合に実行すべきコマンド
$endif '.IF文の終了
#+++
例:
# OS判定
#
$if GetOsVersion() >= 6.1 'Window7以上?
/show-message "Windows7以上"
$elseif GetOsversion() == 6.0 'VISTA?
/show-message "Vista"
$else '以外
/show-message "XP以下"
$endif
真の場合のみで、処理が一行であれば、次のように続けて書いても可
$if GetOsVersion() == 6.1 $set OS = "Windows7"
# 条件分岐 $switch 〜 $case 〜 $default $end-switch
#
# 値により 処理ステップを変更する
#+++
$switch n '.値による条件分岐開始 n:分岐する値
$case n1 '.値による条件分岐 n=n1 の場合に実行される 次の $case/$defaule/$end-switch の直前行まで
$xxxxx '処理すべきコマンドを記述
$yyyyy
/zzzzz
$case n2
・・・
$case nn
$default '.値による条件分岐 全ての $case に当てはまらない場合に実行される
$end-switch '.値による条件分岐終了
例:
# OS判定
#
$set OS = GetOsVersion()
$switch %OS%
$ case 6.2
/msg "Windows8"
$ case 6.1
/msg "Windows7"
$ case 6.0
/msg "VISTA"
$ case 5.1
/msg "WindowsXP"
$ case 5.0
/msg "Windows2000"
$ default
/msg "その他のバージョン"
$end-switch
処理が一行の場合は以下のように記述しても良い
$switch %OS%
$ case 6.2 /msg "Windows8"
$ case 6.1 /msg "Windows7"
$ case 6.0 /msg "VISTA"
$ case 5.1 /msg "WindowsXP"
$ case 5.0 /msg "Windows2000"
$ default /msg "その他のバージョン"
$end-switch
# ループ $do-while 条件式 〜 $loop − 前置判定 −
#
# 条件により実行処理を変更する
$do-while 条件式 '.ループ(前置判定)
ループ中に実行すべきコマンド
$loop '.条件式が真の間、 $do-while との間をループ
例:
# 10回メッセージ表示
#
$set n=0
$do-while %n%<10
$set n += 1 '1 加算
/show-message %n%,2,,,,,,72
$loop
# ループ $do 〜 $loop-while − 後置判定 −
#
# 条件により実行処理を変更する
$do '.ループ(後置判定)
ループ中に実行すべきコマンド
$loop-while 条件式 '.条件式が真の間、 $do との間をループ
例:
# 10回メッセージ表示
#
$set n=0
$do
$set n += 1 '1 加算
/show-message %n%,2,,,,,,72
$loop-while %n%<10
# ループ終了 $exit-loop
#
# ループを終了する
$eixt-loop '.ループ終了
例:
# 10回メッセージ表示
#
$set n=0
$do
$set n += 1 '1 加算
$if %n% == 3
$exit-loop
$endif
/show-message %n%,2,,,,,,72
$loop-while %n%<10
# プログラム終了
#
# 以降のステップを実行しない
# 関数が本体プログラムの後に記述されている場合は必須
# ($end が無いと、関数部分に突入してしまう)
$end '.プログラム終了
#-----------------------------------------
$function 〜 '関数定義など
〜
$return 0
$end-function
//////////////////////////////////////////
連続コマンドについては、
オンラインヘルプ「プログラム例」を参照
//////////////////////////////////////////