# 変数の設定と使用 $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
//////////////////////////////////////////
連続コマンドについては、
オンラインヘルプ「プログラム例」を参照
//////////////////////////////////////////