予約語

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

予約語のルール

予約語の後には、必ず半角空白が1つ以上必要です。

If など大文字、小文字に関わらず有効ですが、基本は以降に表示される構文の表記としてください。

予約語の種類

アクション・スクリプトには、以下の予約語があります。

項目 内容
If 条件分岐を行います。
Select Case 複数の条件分岐を行います。
For Next 繰り返しのループ処理を行います。
Do Loop 判定付きの繰り返しのループ処理を行います。
GoTo Label 指定したラベルに、ジャンプ処理します。
Exit 中断・終了します。
Break Point アクション編集における「テスト」で、実行を一時中断します。

 

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を終了します。

 

Exit Subと、Exit Actionの違いは、次の通りです。

たとえば、アクションAが、アクションBを呼び出している場合、アクションBの中で・・・

Exit Subを行えば、アクションBは中断し、アクションAの処理に戻ります。

Exit Actionを行えば、アクションB、Aともに中断します。

通常はIf文と組み合わせ、中断条件が満たされたときのみ使用することになります。

「If 中断条件 Then Exit Sub」など。

 

Break Point(テスト中の一時中断)

アクション編集画面で、「テスト」ボタンを押して、テストしている時のみ、ブレークポイント画面を表示し、一時中断します。

ブレークポイントまでのログを表示すると同時に、変数名と内容を表示し、内容を変更することも可能です。

「再実行」するのか、「中断」するのか、選択することができます。