iMacrosはFirefoxでの操作を.iimファイルとして記録する事ができますが、それ以外にも命令を自分で書く事もできます。
さらにJavaScriptで.iimファイルを操作する事も可能と、なかなか複雑な事も出来ます。
そこでiMacrosの命令一覧と簡単なサンプルを書いてみます。
iMacrosの命令
命令 | 効果 |
WAIT SECONDS=数値 | マクロの動作を数値の分だけ待ちます。0.1秒から指定できます。 |
CLEAR | キャッシュのクリア |
URL GOTO=パラメータ | パラメータがURLなら「そのURLを開く」ことが出来ます。 また、javascript:~ならJavaScript命令を実行する事が出来ます。 例:URL GOTO=javascript:window.scrollBy(0,100}) |
PAUSE | PAUSEボタンを押すのと同じ効果で、押すと一時停止します。 再開するにはContinueボタンを押す必要があります。 |
SET | 変数などに値をいれます。 |
変数 | 効果 |
!VAR数字 | 変数として使います。数字は0~9。 例:SET !VAR0 999 |
!CLIPBOARD | クリップボードに値を入れます。 例:SET !CLIPBOARD 999 |
!REPLAYSPEED パラメータ | マクロの進行に「待ち」を入れます。 パラメータは「FAST」「MEDIUM」「SLOW」の三種。 FASTは待ち無し、MEDIUMは1秒、SLOWは2秒。 デフォルトはFAST 例:SEL !REPLAYSPEED MEDIUM |
!SINGLESTEP パラメータ | 一行進める毎にPauseをかけるかを指定します。 パラメ-タは「YES」か「NO」。デフォルトはNO。 再開するにはContinueボタンを押す必要があります。 例:SET !SINGLESTEP YES |
!TIMEOUT_PAGE 数値 | このページでの処理が終わるまでの待ち時間の限界を設定します。 指定できる数値は1以上の整数のみ。1が1秒。 例:SET !TIMEOUT_PAGE 1 |
!TIMEOUT_STEP 数値 | 1命令毎の処理が終わるまでの待ち時間の限界を設定します。 数値は1以上の整数のみで秒単位。デフォルトは60。 例:SET !TIMEOUT_STEP 1 |
!ERRORIGNORE パラメータ | エラーが起こってもマクロを停止させないようにします。 パラメータは「YES」か「NO」。デフォルトはNO。 例:SET !ERRORIGNORE YES |
▶例:Windowを100ポイント下へスクロールするマクロ(最大1秒間まで待つ)
SET !TIMEOUT_PAGE 1 URL GOTO=javascript:window.scrollBy(0,100)
「URL GOTO=javascript:window.scrollBy(0,100)」でウインドウを下へ100スクロールさせます。
しかし、そのままでは待ち時間が60秒かかります。
そこで「SET !TIMEOUT_PAGE 1」で限界待ち時間を1秒に指定して高速化しています。
命令 | 効果 |
SET !DATASOURCE ファイル名 | 読み込むCSVファイルを指定します。 参照するフォルダはiMacros\Datasourcesの中です。 例:SET !DATASOURCE data.csv |
SET !DATASOURCE_LINE 行番号 | CSVの何行目を読み込むかを指定します。 1が行の先頭になります。 「{{!COL1}}」に1列目の値、「{{!COL2}}」に2列目の値が入ります。 例:SET !DATASOURCE_LINE 1 |
▶例:test.csvのA1の値をクリップボードに入れる
SET !DATASOURCE test.csv SET !DATASOURCE_LINE 1 SET !CLIPBOARD {{!COL1}}
「SET !DATASOURCE test.csv」で読み込む.CSVファイルを指定します。
「SET !DATASOURCE_LINE 1」で1行目を読むと指定です。
最後に「SET !CLIPBOARD {{!COL1}}」で1列目をクリップボードに入れる。
JavaScriptとの連携命令
命令 | 効果 |
ADD !EXTRACT 変数 | 変数の値をJavaScriptへ返す命令です。 複数のデータを渡す事ができます。 例:ADD !EXTRACT 100 |
命令 | 効果 |
iimGetLastExtract(数字) | .iimからADD !EXTRACTで送られた値をJavaScriptが受け取る命令です。 「数字」は送られた順番の番号で、1が.iimから最初に送られた物です。 例:var Data1=iimGetLastExtract(1); |
iimPlay(.iimファイル名); | JavaScriptから実行する.iimファイル名です。 例:iimPlay(“test/#Check”); |
iimSet(変数名,値); | JavaScriptから実行する.iimファイルへ送る変数を指定します。 iimPlayを実行する前に置きます。 .iim内で値を参照するは「{{“変数名”}}」を使います。 例:iimSet(“data”,100); |
▶例:JavaScriptでCSVファイルを読む
.iim側
ファイル名「#csv.iim」
SET !DATASOURCE test.csv SET !DATASOURCE_LINE {{num}} ADD !EXTRACT {{!COL1}} ADD !EXTRACT {{!COL2}}
JavaScript側
iimSet("num",1); iimPlay("#csv"); var Data1=iimGetLastExtract(1); var Data2=iimGetLastExtract(2);
このマクロはJavaScript側を実行すればJavaScriptが#csv.iimを使いtest.csvを読みます。
「iimSet(“num”,1);」で「#csv.iim」内の「{{num}}」に「1」を送る事になります。
この例では「SET !DATASOURCE_LINE {{num}}」で1行目を指定となります。
「iimPlay(“#csv”);」を実行した時点で読み込みが開始されます。
そして「iimGetLastExtract()」で1列と2列目のデータを受け取りをします。
ちなみに、このマクロはJavaScript側と.iim側が同じフォルダに入っている物とします。