このページでは、予約語のルール、種類に関して説明します。
予約語のルール
予約語の後には、必ず半角空白が1つ以上必要です。
If など大文字、小文字に関わらず有効ですが、基本は以降に表示される構文の表記としてください。
予約語の種類
アクション・スクリプトには、以下の予約語があります。
項目 | 内容 |
---|---|
If | 条件分岐を行います。 |
Select Case | 複数の条件分岐を行います。 |
For Next | 繰り返しのループ処理を行います。 |
Do Loop | 判定付きの繰り返しのループ処理を行います。 |
GoTo Label | 指定したラベルに、ジャンプ処理します。 |
Exit | 中断・終了します。 |
If (条件分岐)
構文は下記の通り。([]の中は、記述してもしなくても良いものです)
If 条件 [Then]
処理a
処理b
ElseIf 条件 [Then]
処理c
処理d
Else
処理f
EndIf
1行のみの構文にする場合、次のような記述が可能です。
If 条件 Then 処理a : 処理b : 処理c (:は、半角のコロン記号です)
条件は、下記の通り。()で囲んだり、AND OR を使用することも可能。
If (a = b OR c=3) AND b > 4
条件に使用できる演算子(すべて半角のみ) ※演算子の前後は、半角空白を入れても良い。
=, >, <, <=, >=, <>(不等号)
左辺、右辺に使用できるもの(下記の順に判断を行う)
戻値関数、フィールド名、権限名、変数、定数
※ フィールド名と権限名が同じ場合、フィールド名と判断します。
右辺のみに設定できるもの
数値、文字列 (「"」で囲みます。 &でつなげることができます。)
テーブルの場合、次の通り。
構文 | 説明 |
---|---|
If 商品名[1] = "あいうえお" Then | 商品名の1番目と文字列を比較。 |
If 商品数量[i] >= 125 Then | 商品数量のi番目と、数値を比較。 (iは、Dim変数) |
Select Case (複数の条件分岐)
構文は下記の通り。
Select Case 変数
Case 条件式1
処理1
Case 条件式2
処理2
Case Else
デフォルト(どの条件にも一致しなかった場合)の処理
End Select
条件式には、いくつかの書き方があります。
1)1つのみ指定する場合
Case 6
Case "abc"
2)複数指定する場合
Case 1,2,3,5
Case "abc","xyz"
3)範囲を指定する場合
Case 1 To 5 '1から5まで
Case Is < 8 '8未満
Case Is >= 9 '9以上
上記を組み合わせて使用することも可能
Case 1, 3 To 5, Is > 10
※ 実行時に、Select CaseはIf文に自動的に置き換えられ、実行されます。
For (繰り返しのループ処理)
構文は下記の通り。([]の中は、記述してもしなくても良いものです)
For カウンタ変数 = 初期値 To 繰返し回数 [Step 加算値]
繰返し回数までの処理
Next カウンタ変数
以下のルールとなります。
● カウンタ変数は、Dim変数のみ可能です。
● 初期値、繰返し回数、加算値は、数値に変換可能な値のみ有効です。
● 繰返し回数処理は、最大10000回までとします。無限ループを避けるための制限です。
● Step 加算値は、省略可能です。省略の場合「Step 1」と見なします。
● 特定の状況でループを抜けたい場合は、「If 中断条件 Then Exit For」とします。
For カウンタ変数 = 初期値 To 繰返し回数 [Step 加算値]
繰返し回数までの処理
If 中断条件 Then Exit For
Next カウンタ変数
● 途中で処理をスキップする場合は、「If スキップ条件 Then Continue」とします。
For カウンタ変数 = 初期値 To 繰返し回数 [Step 加算値]
If スキップ条件 Then Continue
繰返し回数までの処理
Next カウンタ変数
● 時間が掛かる処理の場合、ProcessMsg関数で処理状況を、ユーザーに伝えられます。
For カウンタ変数 = 初期値 To 繰返し回数 [Step 加算値]
時間のかかる処理
ProcessMsg("処理中 = " & i & "回目")
Next カウンタ変数
● テーブルの場合、繰返し回数にフィールド名を入れることで、テーブルの最大値を繰り返し回数とします。
For i = 1 To TableMaxNo(商品名)
商品名[i] = "品名" & i
金額[i] = i*1000
Next i
Do Loop (判定付きの繰り返しのループ)
前判定(Do While)で、指定した条件に従い処理を繰り返します。
「Exit Do」でループを抜けることも可能です。
a = 1
Do While a < 5 '5回ループします。
b = 3
Do While b > 0 '3回ループします。
b = b - 1
If a > 3 Then Exit Do 'ループを抜けます
Loop
a = a + 1
Loop
後判定(Loop While)で、指定した条件に従い処理を繰り返します。
「Exit Do」でループを抜けることも可能です。
a = 1
Do
b = 3
Do
b = b - 1
If a > 3 Then Exit Do 'ループを抜けます
Loop While b > 0 '3回ループします。
a = a + 1
Loop While a < 5 '5回ループします。
GoTo Label (ジャンプ処理)
Label名の位置まで、GoToでジャンプします。
なお、Label名は、大文字小文字を区別しません。
c=0
cnt = Split(s, "<@>", a)
for i = 0 to cnt - 1
for j = 0 to cnt - 1
・・・
c = c + 1
if c > 4 then GoTo ABC
next j
next i
Label ABC
Exit (中断・終了)
Exitには、次の種類があります。
種別 | 説明 |
---|---|
Exit Sub | 現在実行中のアクションのみ中断します。 |
Exit Action | 全てのアクションを中断します。 |
Exit PenConnect | 何もせずにPenConnectを終了します。 |
たとえば、アクションAが、アクションBを呼び出している場合、アクションBの中で、Exit Subを行えば、アクションBは中断し、アクションAの処理に戻ります。
アクションBの中で、Exit Actionを行えば、アクションB、Aともに中断します。
通常はIf文と組み合わせ、中断条件が満たされたときのみ使用することになります。
「If 中断条件 Then Exit Sub」など。