予約語

このページでは、予約語のルール、種類に関して説明します。

予約語のルール

予約語の後には、必ず半角空白が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」など。