未経験のITエンジニア転職【テックキャンプ】

iMacros:DEMO(サンプル)マクロの中身を初心者向けに解説

imacrosでもマクロを解説

iMacrosをダウンロードした時に入っている、DEMO(サンプル)マクロを解説しているページです。

最初から「Demo-Firefox」「Demo-Chrome」などのファイルが用意されています。今回は、Firefox版のiMacros8.9.7のDEMOマクロの中身がメインです。

他のバージョンやブラウザは、少し違う部分もありますが基本的には同じです。ただ制限が多いので、Firefox版のiMacros8.9.7(無料)がおすすめです。

導入されたい方は「iMacrosに必要なFirefox導入方法と初期設定」をご覧頂ければと思います。

ノーノちゃん

そういえば一度だけ見たことある^^
でも英語で書かれていて、よく分からなかったよ(T_T)
はい。筆者も、日本語で説明してほしいと思っていました(笑)
それでは、順位に解説していきます(#^.^#)

テイくん

1. マクロ目次

データ入力
ExtractAndFill 抜き出した複数データをまとめて入力欄に記入
FillForm-XPath テストフォームに記入(TAG XPATH)
FillForm テストフォームに記入(TAG POS)
Loop-Csv-2-Web CSVデータを順番にフォームに入力(LOOP)
データ抜き出し
ArchivePage サイトの中身を全て抜き出す
Extract テキスト、タイトル、URL、ALT抜き出す
ExtractRelative TAG POS=Rを使って表からデータを抜き出す
ExtractTable テーブルの中身(テキスト)を全て抜き出す
ExtractURL 同じ場所で複数データを抜き出す
SaveAs ページ全体の中身を抜き出す
ダウンロード、アップロード
Download 特定のファイルをダウンロードする
SavePDF PDFをダウンロードする
Upload ファイルをアップロードする
その他
Filter 画像フィルターを使って画像を非表示
Javascript-Dialogs ダイアログ内をクリック
Open6Tabs タブを1個づつ開きながら各ページにアクセス
SlideShow 自作スライドショー
Tabs Popupで3つ開いたタブの最後を選ぶ
TagPosition LOOPを使って順番にリンクをクリック
TakeScreenshot-FX スクリーンショットを撮る
補足
サンプルマクロの英語部分を日本語に変更しています。それとマクロの速度が早いと動きが分かりにくいので、全てのコマンドにSET !REPLAYSPEED MEDIUMを入れています。
注意
iim(iMacros)と別の言語のため、JavaScriptファイル関係は載せていません。

2. データ入力

抜き出した複数データをまとめて入力欄に記入

ファイル名:ExtractAndFill.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
TAB T=1
SET !REPLAYSPEED MEDIUM
URL GOTO=http://demo.imacros.net/Automate/ExtractDemo

'テキストを抜き出す
TAG POS=39 TYPE=TD ATTR=TXT:* EXTRACT=TXT

'抜き出したテキスト(EXTRACT)をVAR1に保存
SET !VAR1 {{!EXTRACT}}

'EXTRACTに残っているデータを破棄する
SET !EXTRACT NULL


'テキストを抜き出す
TAG POS=40 TYPE=TD ATTR=TXT:* EXTRACT=TXT

'抜き出したテキスト(EXTRACT)をVAR2に保存
SET !VAR2 {{!EXTRACT}}

'EXTRACTに残っているデータを破棄
SET !EXTRACT NULL


'テキストを抜き出す
TAG POS=41 TYPE=TD ATTR=TXT:* EXTRACT=TXT

'抜き出したテキスト(EXTRACT)をVAR3に保存
SET !VAR3 {{!EXTRACT}}

'EXTRACTに残っているデータを破棄
SET !EXTRACT NULL


'テスト入力フォームにアクセス
URL GOTO=http://demo.imacros.net/Automate/TestForm1

'Nameの欄に「デモ」と入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:name CONTENT="デモ"

'Remarksの欄にVAR1、VAR2、VAR3のデータを入力
TAG POS=1 TYPE=TEXTAREA FORM=ID:demo ATTR=NAME:Remarks CONTENT="現在のレート:

1ドル {{!VAR1}} ユーロの場合{{!VAR2}} ポンドの場合{{!VAR3}} 日本円の場合"
iim
VERSION  BUILD=7500718 RECORDER=FX
TAB T=1
SET !REPLAYSPEED MEDIUM
URL GOTO=http://demo.imacros.net/Automate/ExtractDemo
TAG POS=39 TYPE=TD ATTR=TXT:* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
SET !EXTRACT NULL

TAG POS=40 TYPE=TD ATTR=TXT:* EXTRACT=TXT
SET !VAR2 {{!EXTRACT}}
SET !EXTRACT NULL

TAG POS=41 TYPE=TD ATTR=TXT:* EXTRACT=TXT
SET !VAR3 {{!EXTRACT}}
SET !EXTRACT NULL

URL GOTO=http://demo.imacros.net/Automate/TestForm1
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:name CONTENT="デモ"
TAG POS=1 TYPE=TEXTAREA FORM=ID:demo ATTR=NAME:Remarks CONTENT="現在のレート:

1ドル {{!VAR1}} ユーロの場合{{!VAR2}} ポンドの場合{{!VAR3}} 日本円の場合"

マクロの解説

まず現在のレートを表から抜き出してVAR1、VAR2、VAR3に保存します。

その後、VAR1~VAR3のデータに文字を追加して記入欄に入力するマクロです。

このマクロのポイントは、SET !EXTRACT NULLでEXTRACTデータを破棄することです。

もし破棄しなかった場合は、前のデータが残っている状態で入力欄に記入すると、以下のようになりますので注意しましょう。

imacrosのdemoマクロ解説

抜き出したデータを利用する実例はこちら ※難易度高めです
yahooメールを自動作成 imacrosワンクリックでYahooフリーメールを連続で自動作成する方法【無料】
補足
改行を使う場合は
を入れます。その場合必ずCONTENT=の中身をダブルコーテーション(")で囲う必要があります。
※1番下の現在のレートの後に使っています。

テストフォームに記入(TAG XPATH)

ファイル名:FillForm-XPath.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
URL GOTO=http://demo.imacros.net/Automate/TestForm1

'Nameに「テイくん テイラボ」と入力
'※CONTENT内にスペースがある場合は、ダブルコーテーション(")で囲う必要があります
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[1]/input[1]" CONTENT="テイくん テイラボ"

'What do you want to eat?で「Pizza」を選ぶ
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[2]/select" CONTENT=%Pizza

'What do you want to drink?で「Coke」を選ぶ
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[3]/select" CONTENT=%Coke

'Sizeで「Medium」を選ぶ
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[4]/input[2]" CONTENT=YES

'What dessert do you want?で「Apple Pie」と「Fruits」を選ぶ
'複数選択する場合は、コロン(:)を使います
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[5]/select" CONTENT=$Apple<SP>Pie:$Fruits

'Are you already a customerで「Yes」を選ぶ
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[6]/input[1]" CONTENT=YES

'マスターパスワードを設定しない
SET !ENCRYPTION NO

'Passwordで「tester」と入力
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[6]/input[2]" CONTENT=tester

'Remarksに「こんにちは!iMacrosは凄く便利ですね。テイくん テイラボ」と入力
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[7]/textarea" CONTENT="こんにちは!

 	 iMacrosは凄く便利ですね。

テイくん テイラボ"

'CLICK TO OREER NOWをクリック
TAG XPATH="//form[@id='demo']/fieldset[2]/button"

'5秒の待ち時間
WAIT SECONDS=5

'完了ページにアクセス
URL GOTO=http://demo.imacros.net/Automate/OK
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
URL GOTO=http://demo.imacros.net/Automate/TestForm1
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[1]/input[1]" CONTENT="テイくん テイラボ"
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[2]/select" CONTENT=%Pizza
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[3]/select" CONTENT=%Coke
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[4]/input[2]" CONTENT=YES
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[5]/select" CONTENT=$Apple<SP>Pie:$Fruits
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[6]/input[1]" CONTENT=YES
SET !ENCRYPTION NO
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[6]/input[2]" CONTENT=tester
TAG XPATH="//form[@id='demo']/fieldset[1]/ol/li[7]/textarea" CONTENT="こんにちは!

 	 iMacrosは凄く便利ですね。

テイくん テイラボ"
TAG XPATH="//form[@id='demo']/fieldset[2]/button"
WAIT SECONDS=5
URL GOTO=http://demo.imacros.net/Automate/OK

マクロの解説

XPATHを使ってテストフォームに書き込むマクロです。

通常のPOSと違い自動で書き込んでくれないのが難点ですが、テキストやリンク先が変わってもエラーが起きないので便利です。

補足
大きく空白を入れたい場合に を使ってTAB分(SPACE4回分)空けることができます。

(改行)と同じく必ずCONTENT=の中身をダブルコーテーション(")で囲う必要があります。

テストフォームに記入(TAG POS)

ファイル名:FillForm.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/TestForm1

'Nameに「テイくん テイラボ」と入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name CONTENT="テイくん テイラボ"

'What do you want to eat?で「Pizza」を選ぶ
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:food CONTENT=%Pizza

'What do you want to drink?で「Coke」を選ぶ
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:drink CONTENT=%Coke

'Sizeで「Medium」を選ぶ
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=ID:medium&&VALUE:medium CONTENT=YES

'What dessert do you want?で「Apple Pie」と「Fruits」を選ぶ
'複数選択する場合は、コロン(:)を使います
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:dessert CONTENT=%"ice cream":%"Apple Pie"

'Are you already a customerで「Yes」を選ぶ
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=NAME:Customer CONTENT=YES

'マスターパスワードを設定しない
SET !ENCRYPTION NO

'Passwordで「tester」と入力
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ID:demo ATTR=NAME:Reg_code CONTENT=tester

'CLICK TO OREER NOWをクリック
TAG POS=1 TYPE=BUTTON:SUBMIT FORM=ID:demo ATTR=TXT:"Click to order now"
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/TestForm1
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name CONTENT="テイくん テイラボ"
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:food CONTENT=%Pizza
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:drink CONTENT=%Coke
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=ID:medium&&VALUE:medium CONTENT=YES
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=ID:dessert CONTENT=%"ice cream":%"Apple Pie"
TAG POS=1 TYPE=INPUT:RADIO FORM=ID:demo ATTR=NAME:Customer CONTENT=YES
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ID:demo ATTR=NAME:Reg_code CONTENT=tester
TAG POS=1 TYPE=BUTTON:SUBMIT FORM=ID:demo ATTR=TXT:"Click to order now"

マクロの解説

テストフォームに書き込むマクロです。

CSVデータを順番にフォームに入力(LOOP)

ファイル名:Loop-Csv-2-Web.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1

'※iMacrosダウンロード時に元々入ってるAddress.csvを使っています
SET !DATASOURCE Address.csv

'2列目のデータから順番に使う
SET !LOOP 2

'繰り返すごとに'2→3→4…列目と増えていく
SET !DATASOURCE_LINE {{!LOOP}}

URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry

'「First Name」にデータの1列目を入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:fname CONTENT={{!COL1}}

'「Last Name」にデータの2列目を入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:lname CONTENT={{!COL2}}

'「Address」にデータの3列目を入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:address CONTENT={{!COL3}}

'「City」にデータの4列目を入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:city CONTENT={{!COL4}}

'「Zip Code」にデータの5列目を入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:zip CONTENT={{!COL5}}

'「State」にデータの6列目の州を選ぶ
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:state CONTENT=$*{{!COL6}}*

'「Country」にデータの7列目の国を選ぶ
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:country CONTENT=$*{{!COL7}}*

'「Email」にデータの8列目を入力
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:email CONTENT={{!COL8}}

'Submitボタンをクリック
TAG POS=1 TYPE=BUTTON:submit FORM=ID:demo ATTR=TXT:Submit

'Back to data entry demoをクリック
TAG POS=1 TYPE=A ATTR=TXT:*Back* 
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
SET !DATASOURCE Address.csv
SET !LOOP 2
SET !DATASOURCE_LINE {{!LOOP}}
URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:fname CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:lname CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:address CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:city CONTENT={{!COL4}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:zip CONTENT={{!COL5}}
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:state CONTENT=$*{{!COL6}}*
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:country CONTENT=$*{{!COL7}}*
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:email CONTENT={{!COL8}}
TAG POS=1 TYPE=BUTTON:submit FORM=ID:demo ATTR=TXT:Submit
TAG POS=1 TYPE=A ATTR=TXT:*Back* 

マクロの解説

!DATASOURCE!LOOPコマンドを使って、CSVデータを上から順番に入力するマクロです。

3. データ抜き出し

サイトの中身を全て抜き出す

ファイル名:ArchivePage.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM

'「入力したページURL」+「NoName_Time_現在(年月_日時秒)」をVAR1に保存
PROMPT "Enter a Page Name" !VAR1 NoName_Time_{{!NOW:yyyymmdd_hhnnss}} 

'「入力したページURL」全てのデータをVAR1のファイル名で保存
SAVEAS TYPE=CPL FOLDER=* FILE={{!VAR1}} 
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
PROMPT "Enter a Page Name" !VAR1 NoName_Time_{{!NOW:yyyymmdd_hhnnss}} 
SAVEAS TYPE=CPL FOLDER=* FILE={{!VAR1}} 

マクロの解説

入力欄にURLを入れて頂くと、そのページの全てのデータ(文字、画像、HTMLなど)をDownloadsに保存してくれます。

補足
Downloadsフォルダの場所がわからない場合は、iMacrosの保存先を変更の記事が参考になると思います。

テキスト、タイトル、URL、ALT抜き出す

ファイル名:Extract.iim

iim
VERSION BUILD=8031994
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Extract2

'テキストを抜き出す
TAG POS=1 TYPE=TD ATTR=CLASS:bdytxt&&TXT:* EXTRACT=TXT

'タイトルを抜き出す
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=TITLE

'HTMLを抜き出す
TAG POS=1 TYPE=SPAN ATTR=CLASS:bdytxt&&TXT:* EXTRACT=HTM  

'「HREF extracts links」のリンク先URLを抜き出す
TAG POS=1 TYPE=A ATTR=TXT:HREF<SP>extracts<SP>links EXTRACT=HREF 

'ALT(画像)を抜き出す
TAG POS=1 TYPE=IMG ATTR=SRC:*shark_thumbnail.jpg EXTRACT=ALT 

'テキストを抜き出す
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:abc EXTRACT=TXT

'テキストを抜き出す
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=ID:TF2 EXTRACT=TXT

'テキストを抜き出す
TAG POS=2 TYPE=TABLE ATTR=TXT:*My* EXTRACT=TXT

'テキストを抜き出す
TAG POS=1 TYPE=TD ATTR=CLASS:bdytxt&&TXT:* EXTRACT=TXT 

'※通常のPOSとは違う使い方なので注意!!
'①MyTable(TH)の位置を基準に変更
TAG POS=1 TYPE=TH ATTR=TXT:MyTable

'②MyTable(TH)の位置から3番目のテキストを抜き出す
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT
iim
VERSION BUILD=8031994
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Extract2
TAG POS=1 TYPE=TD ATTR=CLASS:bdytxt&&TXT:* EXTRACT=TXT
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=TITLE
TAG POS=1 TYPE=SPAN ATTR=CLASS:bdytxt&&TXT:* EXTRACT=HTM
TAG POS=1 TYPE=A ATTR=TXT:HREF<SP>extracts<SP>links EXTRACT=HREF
TAG POS=1 TYPE=IMG ATTR=SRC:*shark_thumbnail.jpg EXTRACT=ALT
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:abc EXTRACT=TXT
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=ID:TF2 EXTRACT=TXT
TAG POS=2 TYPE=TABLE ATTR=TXT:*My* EXTRACT=TXT
TAG POS=1 TYPE=TD ATTR=CLASS:bdytxt&&TXT:* EXTRACT=TXT
TAG POS=1 TYPE=TH ATTR=TXT:MyTable
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT

マクロの解説

各データ(テキスト、タイトル、URL、ALT)を抜き出して、Downloadsに保存してくれるマクロです。

それとTAG POS=R3は通常の使い方と違い、マークした場所から3番目の場所を指定できます。

詳しくは、次の項目「TAG POS=Rを使って表からデータを抜き出す」のDEMOマクロで確認して頂ければと思います。

補足
抜き出したデータを保存するコマンドSAVEAS TYPE=EXTRACTを書いていないのでPCに保存はされません。
EXTRACTコマンドを基礎から勉強したい方はこちら
EXTRACTを使用して特定の文字、画像やHTMLを抜き出すiMacros:EXTRACTで文字、HTML、画像を抜き出す【PART.5】

実例はこちら ※難易度高めです
yahoo知恵袋自動取得 imacrosブログ記事のネタ(ヤフー知恵袋)をiMacrosで自動取得しよう!

TAG POS=Rを使って表からデータを抜き出す

ファイル名:ExtractRelative.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/Extract2

'ページの1番上から13番目TDのデータ抜き出す
TAG POS=13 TYPE=TD ATTR=TXT:* EXTRACT=TXT

'---------------CASE1---------------
'MyTable(TH)の位置を基準に変更
TAG POS=1 TYPE=TH ATTR=TXT:MyTable

'MyTable(TH)から3番目TDのデータ抜き出す
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

'3番目TDの位置から1番目(実際は4番目)TDのデータ抜き出す
TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

'4番目TDの位置から1番目(実際は5番目)TDのデータ抜き出す
TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

'---------------CASE2---------------
'MyTable(TH)の位置を基準に変更
TAG POS=1 TYPE=TH ATTR=TXT:MyTable

'MyTable(TH)から3番目TDのデータ抜き出す
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

'MyTable(TH)の位置を基準に変更
TAG POS=1 TYPE=TH ATTR=TXT:MyTable

'MyTable(TH)から4番目TDのデータ抜き出す
TAG POS=R4 TYPE=TD ATTR=TXT:* EXTRACT=TXT

'MyTable(TH)の位置を基準に変更
TAG POS=1 TYPE=TH ATTR=TXT:MyTable 

'MyTable(TH)から5番目TDのデータ抜き出す
TAG POS=R5 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

'---------------CASE3---------------
'テキスト3の位置を基準に変更
TAG POS=1 TYPE=TD ATTR=TXT:3

'テキスト3からマイナス2番目のTDのデータ抜き出す
TAG POS=R-2 TYPE=TD ATTR=TXT:* EXTRACT=TXT
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/Extract2
TAG POS=13 TYPE=TD ATTR=TXT:* EXTRACT=TXT

TAG POS=1 TYPE=TH ATTR=TXT:MyTable
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT 
TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT 
TAG POS=R1 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

TAG POS=1 TYPE=TH ATTR=TXT:MyTable
TAG POS=R3 TYPE=TD ATTR=TXT:* EXTRACT=TXT 
TAG POS=1 TYPE=TH ATTR=TXT:MyTable
TAG POS=R4 TYPE=TD ATTR=TXT:* EXTRACT=TXT
TAG POS=1 TYPE=TH ATTR=TXT:MyTable 
TAG POS=R5 TYPE=TD ATTR=TXT:* EXTRACT=TXT 

TAG POS=1 TYPE=TD ATTR=TXT:3
TAG POS=R-2 TYPE=TD ATTR=TXT:* EXTRACT=TXT

マクロの解説

通常は、ページの1番上から何番目という感じで場所を指定していきます。

この書き方は、特定の位置を基準にしてそこから何番目を指定するマクロです。

よく使われるのが、複数のテーブルがあるページで使用します。
※DEMOマクロのようにテーブルが1個しかない場合は使う必要がありません。

ちなみにPOS=RのRはrelative(リレイディブ)と言い、「〇〇と関係(関連)がある」というような意味です。CSSでもよく使われています。

POS=Rの使い方を図で確認

imacrosのdemoマクロ解説

imacrosのdemoマクロ解説

imacrosのdemoマクロ解説

補足
「CASE1、2」の書き方は違いますが、全く同じ動きをします。もし使い方を迷った場合は、マクロの行数が少ない方を選びましょう。

テーブルの中身(テキスト)を全て抜き出す

ファイル名:ExtractTable.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1    
URL GOTO=http://demo.imacros.net/Automate/ExtractDemo

'2番目のテーブルのテキストを全て抜き出す
TAG POS=2 TYPE=TABLE ATTR=TXT:* EXTRACT=TXT

'ファイル名「mytable_現在(年月_日時秒)」で保存
SAVES TYPE=EXTRACT FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}.csv

'3秒の待ち時間
WAIT SECONDS=3

'ダウンロード完了ページにアクセス
URL GOTO=http://demo.imacros.net/Automate/OK 
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1    
URL GOTO=http://demo.imacros.net/Automate/ExtractDemo
TAG POS=2 TYPE=TABLE ATTR=TXT:* EXTRACT=TXT
SAVEAS TYPE=EXTRACT FOLDER=* FILE=mytable_{{!NOW:yymmdd_hhnnss}}.csv
WAIT SECONDS=3
URL GOTO=http://demo.imacros.net/Automate/OK 

マクロの解説

テーブルの中身(テキスト)を全て抜き出して、Downloadsに保存してくれるマクロです。

ただ記号(",)や空白も一緒に抜き出してしまうのであまり使う場面がないです。

各セルの中身(TH、TDなど)を指定して抜き出す方が実用的です。

同じ場所で複数データを抜き出す

ファイル名:ExtractURL.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Extract2

'リンク先URLを抜き出す
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=HREF

'タイトルを抜き出す
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=TITLE

'アンカーテキストを抜き出す
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=TXT 
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Extract2
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=HREF
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=TITLE
TAG POS=1 TYPE=A ATTR=TXT:H*links* EXTRACT=TXT 

マクロの解説

同じ場所で複数データ(URL、タイトル、アンカーテキスト)を抜き出すマクロです。

ちなみにEXTRACT=TITLEだけは、ほとんど使うことがありません。

ページ全体の中身を抜き出す

ファイル名:SaveAs.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/SaveAs
WAIT SECONDS=3
URL GOTO=http://www.iopus.com/imacros/

'ページの中身を全て保存
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}

'ページ全体のHTMLを保存
SAVEAS TYPE=HTM FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}} 

ページ全体のテキストを保存
SAVEAS TYPE=TXT FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}

WAIT SECONDS=3
URL GOTO=http://demo.imacros.net/Automate/SaveAs
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/SaveAs
WAIT SECONDS=3
URL GOTO=http://www.iopus.com/imacros/     
SAVEAS TYPE=CPL FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}   
SAVEAS TYPE=HTM FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}   
SAVEAS TYPE=TXT FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}     
WAIT SECONDS=3
URL GOTO=http://demo.imacros.net/Automate/SaveAs

マクロの解説

ページ全体の中身を抜き出すマクロです。

4. ダウンロード、アップロード

特定のファイルをダウンロードする

ファイル名:Download.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1 URL GOTO=http://demo.imacros.net/Automate/Downloads

'Download File 2をダウンロード 
ONDOWNLOAD FOLDER=* FILE=* WAIT=YES
TAG POS=2 TYPE=A ATTR=TXT:*Download*   

'3秒の待ち時間
WAIT SECONDS=3

'ダウンロード完了ページにアクセス
URL GOTO=http://demo.imacros.net/Automate/OK
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1 URL GOTO=http://demo.imacros.net/Automate/Downloads
ONDOWNLOAD FOLDER=* FILE=* WAIT=YES
TAG POS=2 TYPE=A ATTR=TXT:*Download*   
WAIT SECONDS=3
URL GOTO=http://demo.imacros.net/Automate/OK

マクロの解説

上から2個目のファイルをダウンロードします。

場所を変更したい場合は、以下のようにTAG POS=数値を変更すればできます。

imacrosのdemoマクロ解説

PDFをダウンロードする

ファイル名:SavePDF.iim

iim
VERSION BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/PDFDemo
WAIT SECONDS=2

'PDF(3 KB)をダウンロード
ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}   
TAG POS=1 TYPE=A ATTR=TXT:*View<SP>small<SP>PDF<SP>Document*

URL GOTO=http://demo.imacros.net/Automate/PDFDemo

'PDF(3,917 KB) をダウンロード
ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}    
TAG POS=1 TYPE=A ATTR=TXT:*View<SP>iMacros<SP>Case*

WAIT SECONDS=3
URL GOTO=http://demo.imacros.net/Automate/OK
iim
VERSION BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/PDFDemo
WAIT SECONDS=2
ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}   
TAG POS=1 TYPE=A ATTR=TXT:*View<SP>small<SP>PDF<SP>Document*     
URL GOTO=http://demo.imacros.net/Automate/PDFDemo
ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}    
TAG POS=1 TYPE=A ATTR=TXT:*View<SP>iMacros<SP>Case*   
WAIT SECONDS=3
URL GOTO=http://demo.imacros.net/Automate/OK

マクロの解説

PDFをダウンロードするマクロです。

ファイルをアップロードする

ファイル名:Upload.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/FileUploadDemo

'DATASOURCEフォルダに入っているAddress.csvをアップロード
TAG POS=1 TYPE=INPUT:FILE FORM=ID:demo ATTR=NAME:uploaded_file CONTENT={{!FOLDER_DATASOURCE}}Address.csv
TAG POS=1 TYPE=TEXTAREA FORM=ID:demo ATTR=NAME:S1 CONTENT="アップロード完了しました!
※これはデモですので実際にアップロードはされていません。" 
WAIT SECONDS=1
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/FileUploadDemo
TAG POS=1 TYPE=INPUT:FILE FORM=ID:demo ATTR=NAME:uploaded_file CONTENT={{!FOLDER_DATASOURCE}}Address.csv
TAG POS=1 TYPE=TEXTAREA FORM=ID:demo ATTR=NAME:S1 CONTENT="アップロード完了しました!
※これはデモですので実際にアップロードはされていません。" 
WAIT SECONDS=1

マクロの解説

DATASOURCEフォルダに入っているファイルをアップロードするマクロです。

違う場所にあるファイルをアップロードすることも可能です。

例えば、デスクトップに「テイラボ.csv」という名前のファイルがある場合、C:Usersユーザー名Desktopテイラボ.csvにCONTENTの中身を変更すれば可能です。

5. その他

画像フィルターを使って画像を非表示

ファイル名:Filter.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1

'画像フィルターON
FILTER TYPE=IMAGES STATUS=ON 
URL GOTO=http://demo.imacros.net/Automate/Filter
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:textfield CONTENT="画像フィルターをONにして画像を非表示しています"

'3秒の待ち時間
WAIT SECONDS=3

'画像フィルターOFF
FILTER TYPE=IMAGES STATUS=OFF

'ページを更新
REFRESH

TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:textfield CONTENT="画像フィルターをOFFにして画像を表示しています"

'3秒の待ち時間
WAIT SECONDS=3
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:textfield CONTENT="テストを終了します"
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
FILTER TYPE=IMAGES STATUS=ON 
URL GOTO=http://demo.imacros.net/Automate/Filter
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:textfield CONTENT="Image Filter ON (No images downloaded from server)"
WAIT SECONDS=3
FILTER TYPE=IMAGES STATUS=OFF
REFRESH
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:textfield CONTENT="Image Filter OFF (Web page not filtered)"
WAIT SECONDS=3
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:textfield CONTENT="Image Filter Test completed"

マクロの解説

FILTERコマンドを使って、画像を非表示→表示に切り替えているマクロです。

大量のデータを抜き出す時にサーバーの負荷を減らすのと、表示速度が遅いサイト時などに使います。

ダイアログ内をクリック

ファイル名:Javascript-Dialogs.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Dialogs

'※「Popup 1」→「OK」の順にクリックしていますがコマンドの順序が逆になります
'OKをクリック
ONDIALOG POS=1 BUTTON=OK CONTENT=

'Popup 1をクリック
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Popup<SP>1

'※「Ask me a question」→「OK」こちらもコマンドの順序が逆になります
'OKをクリック
ONDIALOG POS=1 BUTTON=OK CONTENT=

'Ask me a questionをクリック
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Ask<SP>me<SP>a<SP>question

'3秒の待ち時間
WAIT SECONDS=3

'Change background back to defaultをクリック
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Change<SP>background<SP>back<SP>to<SP>default<SP>
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
URL GOTO=http://demo.imacros.net/Automate/Dialogs
ONDIALOG POS=1 BUTTON=OK CONTENT=
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Popup<SP>1
ONDIALOG POS=1 BUTTON=OK CONTENT=
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Ask<SP>me<SP>a<SP>question
WAIT SECONDS=3
TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormName ATTR=VALUE:Change<SP>background<SP>back<SP>to<SP>default<SP>

マクロの解説

ダイアログ内をクリックするマクロです。

注意点は実際の動作とコマンドの書き方が逆になります。

基本的には自動で記憶してくれますので気にすることはないと思いますが、もし編集する場合は注意が必要です。

補足
順序を逆にすると以下のようなエラーが表示されます。
RuntimeError: unhandled alert dialog detected. Dialog message: “Popup 1”, line 4 (Error code: -1450)

タブを1個づつ開きながら各ページにアクセス

ファイル名:Open6Tabs.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM

'VAR1に1を入れる
SET !VAR1 1


'新しいタブを開く
TAB OPEN NEW

'VAR1(数値は1)+1=2
ADD !VAR1 1

'VAR1(数値は2)/2個目のタブを指定
TAB T={{!VAR1}}
URL GOTO=http://www.iopus.com


'新しいタブを開く
TAB OPEN NEW

'VAR1(数値は2)+1=3
ADD !VAR1 1

'VAR1(数値は3)/3個目のタブを指定
TAB T={{!VAR1}}
URL GOTO=https://forum.imacros.net/


'新しいタブを開く
TAB OPEN NEW

'VAR1(数値は3)+1=4
ADD !VAR1 1

'VAR1(数値は4)/4個目のタブを指定
TAB T={{!VAR1}}
URL GOTO=http://wiki.imacros.net


'新しいタブを開く
TAB OPEN NEW

'VAR1(数値は4)+1=5
ADD !VAR1 1

'VAR1(数値は5)/5個目のタブを指定
TAB T={{!VAR1}}
URL GOTO=https://teilab-sub.net/


'新しいタブを開く
TAB OPEN NEW

'VAR1(数値は5)+1=6
ADD !VAR1 1

'VAR1(数値は6)/6個目のタブを指定
TAB T={{!VAR1}}
URL GOTO=https://teilab.net/


'新しいタブを開く
TAB OPEN NEW

'VAR1(数値は6)+1=7
ADD !VAR1 1

'VAR1(数値は7)/7個目のタブを指定
TAB T={{!VAR1}}
URL GOTO=https://teilab.net/category/imacros/
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
SET !VAR1 1

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=http://www.iopus.com

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=https://forum.imacros.net/

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=http://wiki.imacros.net

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=https://teilab-sub.net/

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=https://teilab.net/

TAB OPEN NEW
ADD !VAR1 1
TAB T={{!VAR1}}
URL GOTO=https://teilab.net/category/imacros/

マクロの解説

新しいタブを開いて、そのタブに違うページにアクセスしていくマクロです。

動作は理解できると思いますが、SETADDコマンドが分かりにくいと思います。

iMacros(.iim)だけでは、あまりこういう使い方しないので覚えなくてもいいと思います。

補足①
TAB OPEN NEWTAB OPENだけでも大丈夫です。
補足②
原本のマクロでは、表示されないページがあるためURLを変更しています。

自作スライドショー

ファイル名:SlideShow.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/Images

'順番に画像をクリック
TAG POS={{!LOOP}} TYPE=A ATTR=HREF:http://*.jpg  

'3秒の待ち時間
WAIT SECONDS=3
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/Images
TAG POS={{!loop}} TYPE=A ATTR=HREF:http://*.jpg  
WAIT SECONDS=3

マクロの解説

3秒間待ち時間をいれて順番に画像を見ていくマクロです。

再生するときはLOOPで繰り返します。

Popupで3つ開いたタブの最後を選ぶ

ファイル名:Tabs.iim

iim
VERSION BUILD=7210419 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/PopupDemo

'URLにpopupが含まれるものをクリック
TAG POS=1 TYPE=A ATTR=HREF:*popup

'4番目のタブを選ぶ
TAB T=4

'Popup 3と入力
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f3 ATTR=NAME:txtPopup CONTENT=Popup<SP>3 

WAIT SECONDS=1
TAB T=1
iim
VERSION BUILD=7210419 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/PopupDemo
TAG POS=1 TYPE=A ATTR=HREF:*popup   
TAB T=4   
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f3 ATTR=NAME:txtPopup CONTENT=Popup<SP>3 
WAIT SECONDS=1
TAB T=1

マクロの解説

リンクをクリックすると、Popupで3つ同時に開いたタブの1番最後に文字を入れるマクロです。

注意
このマクロを動かすためには、ポップアップの設定を有効にする必要があります。

imacrosのdemoマクロ解説

※設定の仕方はブラウザやバージョンによって少し違います

LOOPを使って順番にリンクをクリック

ファイル名:TagPosition.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/TagPosition

'Click to open this pageクリック
TAG POS={{!LOOP}} TYPE=A ATTR=TXT:Click<SP>to<SP>open<SP>this<SP>page

WAIT SECONDS=1
BACK
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1     
URL GOTO=http://demo.imacros.net/Automate/TagPosition
TAG POS={{!LOOP}} TYPE=A ATTR=TXT:Click<SP>to<SP>open<SP>this<SP>page   
WAIT SECONDS=1
BACK

マクロの解説

LOOPを使って繰り返し再生をして、1→2→3と順番をリンクをクリックするマクロです。

使う機会が多いので覚えておいて損はないです。

スクリーンショットを撮る

ファイル名:TakeScreenshot-FX.iim

iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1

'スクリーンショットを撮る
SAVEAS TYPE=PNG FOLDER=* FILE=Screenshot_Time_{{!NOW:yyyymmdd_hhnnss}}.png
URL GOTO=http://demo.imacros.net/Automate/Screenshot
iim
VERSION  BUILD=7500718 RECORDER=FX
SET !REPLAYSPEED MEDIUM
TAB T=1
SAVEAS TYPE=PNG FOLDER=* FILE=Screenshot_Time_{{!NOW:yyyymmdd_hhnnss}}.png
URL GOTO=http://demo.imacros.net/Automate/Screenshot

マクロの解説

現在開いているページのスクリーンショットを撮るマクロです。

保存しておきたいページがある場合に使うことができます。

6. まとめ

DEMOマクロの中でよく分からなかったのもあると思いますが、気にする必要はありません。

マクロの書き方は何通りもありますので、自分の得意とする方法を実践しながら見つけていけばOKです。

まとめ
  • TAG POS=Rは使い方が特殊
  • DEMOマクロはあくまでも参考程度
  • 理解できないコマンドがあった場合はリンク先で確認