制御文としては、以下のものがあります。
文 | 説明 |
---|---|
IF | 処理の分岐 |
WHILE | ループ |
GOTO | ジャンプ |
IF文は条件文によって処理の流れを変える制御文です。条件文の演算結果がTRUE(真)、FALSE(偽)によって処理が分岐されます。
●構文
構文1: 基本形
IF(条件文) 文 ・・・ 条件文がTRUE(真)の時に実行されます ENDIF
構文2: 条件文によって処理がそれぞれに分岐する場合
IF(条件文) 文 ・・・ 条件文がTRUE(真)の時に実行されます ELSE 文 ・・・ 条件文がFALSE(偽)の時に実行されます ENDIF
構文3: 複数の条件文によって処理が分岐する場合
IF(条件文1) 文 ・・・ 条件文1がTRUE(真)の時に実行されます ELSEIF(条件文2) 文 ・・・ 条件文2がTRUE(真)の時に実行されます ENDIF
●補足
文は複数の文を記述できます。
IF文の中にIF文を入れ子にできます。
条件文には、論理値や整数が記述できます。
条件文は1つだけ記述できます。
(条件文どうしの演算結果を条件文とすることはできません)
●使用例
次の例は"TSSX"という文字列を検索してその結果をMsgBox関数で表示しています。
IF( Scan("TSSX") ) MsgBox("ログオンが完了しました") ELSE MsgBox("ログオンは完了していません") ENDIF
WHILE文は条件文がTRUE(真)である間処理を繰り返します。
●構文
WHILE (条件文) 文1 文2 : ENDWHILE
●補足
文は複数の文を記述できます。
WHILE文の中にIF文やWHILE文を記述できます。
条件文は1つだけ記述できます。
(条件文どうしの演算結果を条件文とすることはできません)
WHILE文から強制的に抜けるときはBREAKWHILE文を使います。
WHILE文の先頭へ強制的に処理を移すときはCONTINUE文を使います。
●使用例
次の例はWHILE文で無限ループを行い"TSSX"という文字列が見つかったらWHILEから抜けます。見つからなかったらキー入力可能になるのを待ってWHILE文の先頭に戻ります。
WHILE( TRUE ) IF( Scan("TSSX") ) MsgBox("ログオンが完了しました") BREAKWHILE ELSE Wait() CONTINUE ENDIF ENDWHILE
GOTO文は指定ラベル位置の処理へジャンプします。
●構文
GOTO(ラベル) 文1 文2 : ラベル: 文x1 文x2 :
●補足
ラベルには任意の文字列を記述できます。
ラベルはGOTO文の前後いずれにも記述できます。
マクロ内に同一文字列のラベルを複数記述することはできません。
●使用例
次の例では、現在キーボードロック状態の場合ERR_KEYLOCKラベルへジャンプします。
IF( IsKeyboardLock() ) GOTO(ERR_KEYLOCK) ENDIF ;[その他の処理] ERR_KEYLOCK: MsgBox("キー入力できない状態です")