26 LINE送信(ISA)

スマホアプリのLINEにPC版があるのをご存じですか?

PC版LINEをインストールしていれば、ロボットからLINEを操作することができます。

PC版LINEの操作は、Desktop Automation(以下 DA)を使って行います。DAの使い方は「15 DAを使ってみよう」にも記載していますので、もしここで行き詰まったらそちらも参考にしてくださいね (*’ω’*)

 ※DAのインストールと設定は「14 DAをインストールしよう」を参照してください。
 ※DAエディターの操作は「24 組込Chromium(その1)」と「25 組込Chromium(その2)」にも記載しています。


【1】ISAとは

実は、DAからLINEを操作するには少し工夫が必要です。

なぜかというと、DAはLINEのボタン位置やテキスト位置をうまく認識してくれないからです。

そこで登場するのが、ISA!!これは、インテリジェント・スクリーン・オートメーション(Intelligent Screen Automation)といって、指定されたアプリケーションのUI要素(ボタン、アイコン、テキストボックスなど)を自動的に判断する拡張イメージ検索機能と画面認識機能です。


はい、難しいーーーっ。こういうときは、実際にやってみるのが一番です!!


【2】ロボットを作成する

【2-1】ロボットを新規作成して変数を追加する

(1)新規または既存のプロジェクトに、[LINE送信.type]を作成し、変数を追加します。

《追加する変数》

名前種類デフォルト値
宛先Short Text(LINEの宛先)
メッセージLong Text(送信するメッセージ)


(2)次に、ロボット[LINE送信ロボ.robot]を作成して、タイプ[LINE送信]を追加します。


【2-2】デバイスマッピングを作成する

(1)[ロボットの設定]の[デザインモード実行]を[スマート実行(フル)]に変更します。

 ※[デザインモード実行]>[スマート実行(フル)]はDAを使うときのお約束です。



(2)プロジェクトを右クリック→[新規作成]→[オートメーションデバイスマッピング]をクリックします。

そして、表示されたダイアログにデバイスマッピングの名前や接続先などを設定します。

 ※デバイスマッピングの作成は「15 DAを使ってみよう」に詳しく記載しています。



【2-3】DAステップを追加する

(1)ロボットビューに新しいアクションステップを追加して、[アクション]は[Desktop Automation]を選択します。[必要なデバイス]は[スタティックリファレンス]の[local_pc]を選択してください。


(2)デスクトップ画面が操作しやすいように、DSの画面を小さくして右端に寄せてください。そして、デスクトップ画面にはLINEのアイコンを作成しておいてください。

準備ができたら、[Desktop Automation]ステップの[ワークフロー]の[編集]をクリックします。


【2-4】LINEを起動する(DA)

(1)エディター画面が表示されたら、画面を小さくして右端に寄せてください。

ではまず、LINEを起動する処理を作成します。

レコーダー・ビューの[Program Manager]タブをクリックすると、デスクトップ画面が表示されますので、LINEのアイコンを右クリック→[クリック]→[ダブルクリック]をクリックします。

そして、[ステップオーバー]ボタンをクリックして処理を実行してください。


(2)LINEが起動したら、レコーダー・ビューの[LINE]タブをクリックし、[再開]ボタンをクリックします。


すると、レコーダー・ビューにLINEの画面が表示されます。


(3)次に、LINEの友だち一覧を表示します。

まず、レコーダー・ビューの[LINE]タブを右クリック→[ツリーモード]→[ISA]をクリックしてください。


そして、再度[再開]ボタンをクリックします。


(4)ツリーモードがISAに変更されると、LINEの[友だち]ボタンが認識できるようになります。


では、レコーダー・ビューの[友だち]ボタンを右クリック→[クリック]→[Left]をクリックしてください。


そして、[ステップオーバー]ボタンをクリックして実行します。


すると、LINEの友だち一覧が表示されます。


(5)次に、LINE画面の右端にある[>]ボタンをクリックしてトークルームを開きます。

[>]を右クリック→[クリック]→[Left]をクリックしてください。


(6)ここで、追加された[Left Click]ステップの[Component]を修正します。そして、[ステップオーバー]ボタンをクリックして実行します。


[Location Found]>[Component]の修正

《修正前》 element
《修正後》 element[name=">"]


すると、LINEのトークルームが表示されます。


(7)これで、LINE起動のワークフローは9割完成です。最後に少し手直しをしていきましょう。

まずは、エディター画面上の[停止]ボタンをクリックして実行をリセットしてから、各ステップをわかりやすい名前に変更してください。


(8)次に、[トークルームを開く]ステップを修正します。

なぜかというと、既にトークルームが開いているときは[>]ボタンが見つからず、エラーになってしまうからです。


[>]ボタンが見つからなかったときの処理

修正前 : 60秒待機 → タイムアウトエラー
修正後 :   2秒待機 → 処理続行



(9)これで、LINE起動のワークフローは完成です。動作確認をしてみましょう。

起動しているLINEを閉じてからエディター画面上の[実行]ボタンをクリックして、処理が正常に行われるかを確認してください。

 ※DAに不具合が発生した場合は、DSに戻って[更新]ボタンをクリックしてリフレッシュしてみてください。


確認できたら、[保存]ボタンをクリックしてエディターを閉じてください。


(10)DSに戻ったら、[Desktop Automation]ステップの名前を「LINE起動」に変更して、[ステップを無効化]しておきます。

 ※LINEが起動しているときに[LINE起動]ステップが実行されるとエラーになります。(エラー回避処理も考えてみてくださいね!)



【2-5】LINEメッセージを送信する(DA)

(1)新しいアクションステップを追加して、[アクション]は[Desktop Automation]を選択します。[入力値]はタイプ[line送信]を選択し、[必要なデバイス]は[スタティックリファレンス]の[local_pc]を選択してください。

そして、[ワークフロー]の[編集]をクリックします。


(2)エディター画面が表示されたら画面を小さくして右に寄せ、LINE画面が隠れないようにします。

そして、レコーダー・ビューの[LINE]タブを右クリック→[ツリーモード]→[ISA]をクリックします。


(3)ここから、LINEの宛先を入力していきます。

ワークフロー画面の黄色い丸マークを右クリック→[Set Clipboard]をクリックしてください。

 ※クリップボードに保存→貼り付けする方が、[Enter Text ステップ]よりもうまく文字入力できました。



そして、[Set Clipboard]ステップの[Contents]には変数[line送信.宛先]をセットして、[ステップオーバー]ボタンをクリックします。


(4)次に、[名前で検索]ボックスを右クリック→[フィールドでキープレス]→[フィールドに貼り付け]をクリックして、[ステップオーバー]ボタンをクリックします。


すると、変数[line送信.宛先]の値が貼り付けられ、友だち一覧に送信対象の宛先が表示されます。

 ※該当する宛先が1件になるように、LINEの表示名を変更するなど調整してください。


(5)宛先を右クリック→[クリック]→[Left]をクリックして、[ステップオーバー]ボタンをクリックします。


(6)宛先にトーク履歴がない場合は次のような画面が表示されますので、[トーク]を右クリック→[クリック]→[Left]をクリックします。


(7)そして、[トーク]ボタンが見つからないときの処理を変更してから、[ステップオーバー]ボタンをクリックします。


[トーク]ボタンが見つからなかったときの処理

修正前 : 60秒待機 → タイムアウトエラー
修正後 :   2秒待機 → 処理続行



(8)ここから、LINEのメッセージを入力していきます。

ワークフロー画面の黄色い丸マークを右クリック→[Set Clipboard]をクリックしてください。


そして、[Set Clipboard]ステップの[Contents]には変数[line送信.メッセージ]をセットして、[ステップオーバー]ボタンをクリックします。


(9)次に、LINE画面のメッセージ入力ボックスを右クリック→[フィールドでキープレス]→[フィールドに貼り付け]をクリックして、[ステップオーバー]ボタンをクリックします。


すると、変数[line送信.メッセージ]の値が貼り付けられます。


(10)最後に、メッセージ送信処理を作成します。

ワークフローの黄色い丸マークを右クリック→[Press Key ステップ]をクリックしてから、[ステップオーバー]ボタンをクリックします。


(11)これで、LINEのメッセージ送信処理が完成しました。

エディター画面上の[リセット]ボタンをクリックして実行をリセットし、各ステップをわかりやすい名前に変更しましょう。


(12)そして、LINEアプリケーションを下図のような状態にしてから、エディター画面上の[実行を開始]ボタンをクリックして、処理が正常に行われるかどうか確認してください。


確認できたら、[保存]ボタンをクリックしてエディターを閉じてください。


(13)DSに戻ったら、[Desktop Automation]ステップの名前を「LINE送信」に変更して、[ステップを無効化]しておきます。


【2-6】LINEを終了する(DA)

(1)新しいアクションステップを追加して、[アクション]は[Desktop Automation]を選択します。[必要なデバイス]は[スタティックリファレンス]の[local_pc]を選択してください。

そして、[ワークフロー]の[編集]をクリックします。


(2)エディター画面が表示されたら画面を小さくして右に寄せ、LINE画面が隠れないようにします。

そして、ワークフロー画面の黄色い丸マークを右クリック→[Press Key ステップ]をクリックしてください。


(3)[Press Key ステップ]の設定値は、次の通りです。設定できたら、[ステップオーバー]ボタンをクリックしてください。

  • [Application]>[Base Finder]>[Reuse Device]
  • [Application]>[Device]>[local_pc]
  • [Application]>[Application]> LINE.exe
  • [Key]>[Standard Keys]>[Esc]
  • [Count]> 3

 ※デバイスマッピング[local_pc]のLINEアプリケーション(LINE.exe)でEscapeキーを3回押します!ということ。



(4)これで、LINEアプリケーションを終了する処理が完了したので(わずか1ステップ)、[保存]ボタンをクリックしてエディターを閉じてください。

そして、DSに戻ったら、[Desktop Automation]ステップの名前を「LINE終了」に変更してください。

さらに、無効化していた[LINE起動]ステップと[LINE送信]ステップを有効化してください。


【3】ロボットを実行する

(1)はじめに、デザインモードで最初のステップをクリックしてから[更新]ボタンをクリックします。(リフレッシュ!)

そして、デバッグモードでロボットを実行して、LINEの送信結果を確認してください。


今回は、宛先とメッセージをデフォルト値に設定しましたが、工夫次第でいろいろなLINE送信ロボットが作れます (*’▽’)♪

あとは、「送ってはいけない人に送ってしまった!」なんてことがないように気を付けましょう!!


23 RPAチャレンジ(DS)

巷で話題の(話題でないかも)RPAチャレンジのサイトを知っていますか?
このサイトでは、疑似的に顧客データの登録処理をすることができます。そして、その正確さと速度を判定してくれます。

※本来は UiPathでチャレンジするためのサイトです。


顧客データはExcelファイルに10件用意されていて、それを1件ずつWebページに入力して登録していきます。


このサイトの面白いところは、[登録]ボタンをクリックするたびに入力位置が変わるということです。しかも、テキストボックスのname属性やid属性まで変わるので、ロボットに入力位置を特定させるには工夫が必要です。



では、さっそくチャレンジしてみましょう!
ここでは、Design Studio(以下 DS)で(DAを使わずに)ロボットを作っていきたいと思います。


【1】顧客データのダウンロード

RPAチャレンジのサイトから、顧客データのExcelファイルをダウンロードして任意の場所に保存します。

《 RPAチャレンジのURL》

  http://rpachallenge.com/?lang=ja



【2】セッション変数について

このサイトのチャレンジを行うためには、セッション変数を使う必要があります。

なぜなら、DSで「Excelの行繰り返し→テキストボックス入力 →[登録]ボタンクリック」というワークフローを作成すると、2回目の繰り返しのときにも1回目と同じページが表示されてしまい、10件登録しても結果画面にたどり着かないからです。(それが見たいのに!)

そこで、登場するのがセッション変数です。この変数を使って[セッションの保存]→[セッションの復元]を行えば、繰り返し処理の中でも正常に次ページが表示されるようになります。つまり、10件目の登録が完了したら結果画面が表示されるようになるのです!

 ※より詳しく知りたい方は「Kofax Kapow へようこそ > リファレンス > Design Studio > ステップ アクション > セッションの保存」を参照してください。


【3】スクリーンショットについて

DSは内蔵ブラウザでWebページを表示するので、(デザインモード実行でなければ)実行中や実行後のWebページを見ることができません。つまり、結果画面も見られないのです。 Σ(゚д゚lll)ガーン

そこで、結果画面を[スクリーンショットを抽出]でImage型の変数に抽出→Image型の変数を[ファイル出力]して、結果画面をPNG(JPGでもOK)ファイルで確認できるようにしておきます。

 ※より詳しく知りたい方は「Kofax Kapow へようこそ > リファレンス > Design Studio > ステップ アクション > スクリーンショット抽出」を参照してください。


【4】ロボットを作成する

このチャレンジは、既出のアクションだけでクリアできます。まずは自力でやってみてください!

ヒントは、[名前付きタグ]。それが全てといっても過言ではない!


【4-1】ロボットを新規作成して変数を追加する

(1)新規または既存のプロジェクトに、ロボットと変数を作成します。


(2)そして、ロボットに変数を追加します。


【4-2】顧客データを抽出する

(1)ロボット・ビューに新しいステップを追加し、[ファイルシステム]→[ファイル読込]アクションを設定します。読み込む[ファイル名]は、ダウンロードした顧客データファイル(challenge_ja.xlsx)を指定します。


(2)ブラウザ・ビューに表示されている顧客データを右クリック→[開く(読み取り専用)]をクリックします。


(3)次に、RPAチャレンジのサイトを開きます。[ロード先]は[新しいウィンドウを開く]を選択してください。

《 RPAチャレンジのURL》

  http://rpachallenge.com/?lang=ja


(4)そして、RPAチャレンジのページにある[開始]ボタンをクリックします。


(5)ここから顧客データを読み込んでいきますので、ブラウザ・ビューの顧客データのタブを右クリック→[現在のウィンドウとして設定]をクリックします。


(6)次に、顧客データの左上の[全セル選択ボタン]を右クリック→ [ループ]→[選択中の行をループ]→[最初の行を除外]をクリックします。


(7)そして、顧客データを抽出して変数にセットしていきます。


(8)セットした内容は、変数・ビューで確認しておきましょう。



(9)そして、長々とした抽出ステップをグループ化します。これで、顧客データの抽出処理が出来上がりました。


【4-3】名前付きタグを設定する

ここから、抽出した顧客データをWebページに入力していきます。注意しなければならないのは、このサイトはページ毎に入力位置が変わるしくみになっているということです。

そこで、位置が変わってもテキストボックスを正しく検出できるように、それぞれのラベル(名前、苗字、会社…など)に[名前付きタグ]を設定して、そのタグ位置を元にしてテキストボックスを特定することにします。

 ※名前付きタグについては >>>>> こちら


(1)まずは、RPAチャレンジのページを[現在のウィンドウとして設定]します。


(2)そして、それぞれのラベル部分を[名前付きタグとして設定]していきます。


(3)[名前付きタグ設定]ステップは、そのままではラベルの表示位置が変わったときに検出できなくなってしまうので、[ファインダー]を修正します。


(4)そして、[タグ名]を項目名に合わせておきます。(下図の場合は「苗字」)


(5)すべてのラベルを[名前付きタグとして設定]できたら、グループ化しておきましょう。

 ※はじめに作った[名前付きタグ設定]ステップをコピペして、1.ステップ名、2.タグパターン、3.タグ名、を変更すると楽ですよー。



【4-4】テキストボックスに入力する

(1)Webページのテキストボックスを右クリック→[変数からテキストを入力]→(入力する変数)をクリックして、[テキストを入力]ステップを作成します。


(2)次に、[テキストを入力]ステップの[ファインダー]を修正します。


《修正前》

[検索範囲]が入力位置の変更に対応できていないので修正が必要。また、[属性名]と[属性値]について、name属性やid属性はページ毎に変更されるので修正が必要。


《修正後》

[検索範囲]を[名前付きタグの後]に変更し、[属性名]と[属性値」はテキストボックスの<input type=”text”>をもとに値を設定。


(3)すべてのテキストボックスに、上記(1)~(2)の方法でテキストを入力します。そして、長々としたステップをグループ化しておきましょう。




(4)次に、[登録]ボタンをクリックするステップを作成します。


(5)そして、[クリック]ステップの[ファインダー]を修正してください。


《修正前》


《修正後》


【4-5】セッションの保存と復元

ここで、先に述べた[セッションの保存]と[セッションの復元]ステップを追加します。が、その前に、せっかくなのでセッション変数を使用しなければどうなるのかを見てみましょう。

まず、エンドポイントをクリックします。そして、繰り返しのイテレーションを進めると、、、、おやっ!おやおやっ!![Round 2]のままですっ!!(しらじらしい)


このままでは結果画面にたどり着かないので、次の手順でセッションの保存と復元を行っていきましょう。


(1)まず、[開始]ボタンクリック後に、[セッションの保存]ステップを追加します。


(2)次に、[名前付きタグ設定]ステップの前に、[セッションの復元]ステップを追加します。


(3)最後に、[登録]ボタンクリック後に、[セッションの保存]ステップを追加します。


これで、繰り返しのイテレーションを進めると[Round 2]→[Round 3]…というふうにカウントアップされるようになりました。


【4-6】スクリーンショットの保存

(1)スクリーンショットを保存するのは10件目の登録が完了した後なので、[登録]ボタンクリック後に[トライステップ]と[値判定]ステップを追加します。

[値判定]ステップの[条件]は「itereation() < 10」を入力、[エラー処理]は[次の代替手段を試行]を選択してください。



(2)次に、[トライステップ]のブランチの下側に、[抽出]→[スクリーンショット抽出]ステップを追加します。

[パディング]は[ページ全体]を選択、[変数]はImage型の変数[スクショ]を選択してください。


(3)そして、[ファイル出力]ステップを追加し、スクリーンショットをPNGファイルとして保存します。[ファイルコンテンツ]は変数[スクショ]を選択、[ファイル名]は任意のファイル名を入力してください。


(4)最後に、[その他]→[エラー生成]ステップを追加して、[エラー処理]は[ループ終了]を選択します。

 ※強制的にループを終了させることができます。



【5】ロボットを実行する

(1)デバッグモードでロボットを実行して、処理が終了したら結果画面の画像を確認してください。



RPAチャレンジのサイト、面白いですよね!

今回はDesign Studioの基本的なステップだけで作りましたが、実はもっと速度UPできる方法があるんです!

DA Editor上でChromiumというウェブブラウザエンジンを使って作るんですが・・・・長くなるのでここではやめときます。。

でも、近いうちに紹介したいなーと思っています (*’ω’*)


19 名前付きタグ(天気2)

さっそく、前回の続きを作成していきましょう。

今回は、名前付きタグを使って[〇〇県各地の天気]のリンク一覧をクリックして、天気情報のページを表示します。そして、天気情報をcsvファイルに出力します。


【1】名前付きタグを設定する

(1)まず、設定ファイルの2列目にある地点名を抽出します。

前回作成したロボットを開いて、tenki.jpのページを開くステップ(2つ目の[Load Page])をクリックしてください。

そして、ブラウザ・ビューに表示されている地点名一覧の1行目のColumn 2(藤沢市)を右クリック→[抽出]→[テキスト]→[天気情報.地点名2]をクリックします。


(2)次に、エンドポイントをクリックして、[神奈川県各地の天気]のリンク一覧が見えるようにページを下にスクロールします。

そして、その一覧の先頭にある[横浜市]を右クリック→[その他]→[名前付きタグとして設定]をクリックしてください。


(3)[アクション]タブの[タグ名]は[名前付き]を選択、[名前]は「地点名2」と入力します。


(4)そして、[ファインダー]タブの[タグパターン]に[天気情報.地点名2]を設定します。


(5)[基本]タブの[ステップ名]は、わかりやすいように「Set Name Tag 地点名2」に変更しておきましょう。


(6)エンドポイントをクリックすると、藤沢市の部分に[地点名2]という名前が表示されます。


(7)その[地点名2]を右クリック→[クリック]をクリックしてください。


(8)すると、[Click 藤沢市]というステップが作成されます。わかりやすいように、[ステップ名]を「Click 地点名2」に変更しておいてください。


【2】天気情報を抽出する

(1)ブラウザ・ビューに表示されている天気、最高気温、最低気温をそれぞれ抽出します。




(2)最高気温に「℃」という文字を追加します。

[コンバータ]の左下にある[+]をクリック→[テキストフォーマット]→[テキストを追加]をクリックしてください。


(3)そして、[追加するテキスト]に「℃」を入力して、[追加するテキスト]は[入力テキストの後]を選択します。


(4)最低気温も同じようにしてください。


(5)ステップが長くなったので、2つ目の[Load Page]から最終ステップまでをグループ化して、[天気情報の取得]ステップにします。


(6)そして、イテレーションを進めながら、天気情報の値が正常に抽出されているか確認してください。



【3】天気情報をcsvファイルに出力する

(1)[天気情報の取得]ステップの後ろに、ファイル出力ステップを追加します。

[ファイルコンテンツ]は[コンバータ]で、[+]→[出力値フォーマットの処理]→[CSVに追加」をクリックします。

 ※csvファイル出力は >>>>> こちら

ファイル名(例)     : C:\Users\xxx\Desktop\天気情報.csv
ファイルコンテンツ    : 天気情報 を CSV として追加
ファイルエンコーディング : Windows 日本語 (windows-3 1j)
ファイルに追加      : チェックON
フォーマットを適用する変数: 天気情報


(2)次に、csvファイルのヘッダーを作成するステップを追加します。

さきほど作成した[Write File]ステップをコピーして、[For Each Data Row]ステップの前に貼り付けます。



(3)そして、[ファイルに追加]のチェックを外し、[ヘッダーを作成]にチェックを入れます。


(4)最後に、値返却ステップを追加してロボットを保存してください。


【4】ロボットを実行する

(1)デバッグモードでロボットを実行して、処理が終了したら次のことを確認してください。

  • ステータス・ビューに天気情報が正しく表示されている。
  • 天気情報.csvが正常に出力されている。



前回も書きましたが、名前付きタグを目印に設定することで、その目印内だけでなく、目印の前や後や間などのリンクをクリックできたり、データを抽出できたり・・・・とにかく便利です。ぜひ使いこなせるようになりたいですね。


18 名前付きタグ(天気1)

いきなりですが、「名前付きタグ」は難しいです。実は、あまり自信がなくて、いままで紹介するのをためらっていました。が、なんせ便利なんです。だから紹介してしまいます!


【1】名前付きタグとは

例えば、設定ファイル(csvファイルなど)に入力されている複数の地点の天気予報を検索したいとき。

下図の場合だと、1件目は「東京都」をクリックして、2件目は「大阪府」をクリックすることになりますが、どうすれば設定ファイルの内容や件数が変わっても対応できるでしょうか?


そんなときに便利なのが、名前付きタグです。

名前付きタグを使うと、「東京都」などのリンクを直接クリックするのではなく、前もってクリックしたい場所に目印となる名前をつけておいて、それをクリックすることになります。


・・・・はい、実際にやってみましょう。

 ※詳しく知りたい方は「Kofax Kapow へようこそ > リファレンス > Design Studio > ステップ アクション > 名前付きタグ設定」を参照してください。


【2】作成するロボットの概要

tenki.jpのページから、設定ファイルに入力されている地点の天気予報をcsvファイルに出力する。

《tenki.jpのURL》

  https://tenki.jp/



【3】ロボット作りの事前準備

はじめに、設定ファイルを作成します。次のテキストをコピーしてメモ帳などのテキストエディタに貼り付け、「weatherpoint.csv」というファイル名で任意の場所に保存してください。

《設定ファイルの内容》

神奈川県,藤沢市
東京都,渋谷区
大阪府,大阪市
岡山県,倉敷市

《保存先の例》

C:\Users\xxx\Desktop\weatherpoint.csv

【4】ロボットを作成する

【4-1】ロボットを新規作成して変数を追加する

(1)新規プロジェクト、もしくは既存のプロジェクトに[天気情報.type]を作成し、変数を追加します。


《追加する変数の名前と種類》

名前種類
地点名1ショートテキスト(Short Text)
地点名2ショートテキスト(Short Text)
天気ショートテキスト(Short Text)
最高気温ショートテキスト(Short Text)
最低気温ショートテキスト(Short Text)

(2)タイプ(変数)が作成できたら、画面左上の[保存]をクリックしてください。


(3)次に、ロボットを作成します。[ロボットを開始するURL]には、tenki.jpのURLを入力してください。

《tenki.jpのURL》

   https://tenki.jp/




(4)すると、次のようなエラーメッセージが表示されて、ページを開くことができません。


(5)そこで、画面左上の[ロボット設定]をクリックして、[SSL/TLS]の設定を変更します。

《変更前》

TLS hello を使用、TLS 1.0 のみ受け入れ(非セキュア)

《変更後》

TLS hello を使用、TLS 1.2 のみを受け入れ



(6)次に、タイプ(変数)の[天気情報]を追加します


【4-2】設定ファイル(csvファイル)を読み込む

(1)新しいステップを追加して、[アクションを選択]→[ファイルシステム]→[ファイル読込]をクリックします。[ファイル名]は、設定ファイルのフルパスを入力してください。

《ファイル名の例》

C:\Users\xxx\Desktop\weatherpoint.csv



(2)エンドポイントをクリックすると、ブラウザ・ビューに設定ファイルの内容(地点名一覧)が表示されます。地点名一覧にはヘッダーがないので、画面下の[ヘッダーを使用]のチェックを外してください。


(3)そして、[アクション]をクリック→[開く(読み取り専用)]をクリックします。


(4)次に、地点名一覧を右クリック→[データ行繰り返し]をクリックします。


(5)そして、1行目のColumn 1(神奈川県)を右クリック→[抽出]→[テキスト]→[天気情報.地点名1]をクリックします。


(6)ここで、ちょっと、すみません、ま、間違えました。

ステップ・ビューの最初にある[Load Page]をエンドポイントの手前に移動させてください。ステップを切り取り&貼り付け、もしくは、マウスでドラッグして移動してください。すみません。。



【4-3】名前付きタグを設定する

(1)エンドポイントをクリックすると、ブラウザ・ビューに tenki.jpのページが表示されます。そして、そのページを下へスクロールすると、[各地の天気]というリンク一覧があります。

設定ファイルの地点名をもとに、ここに表示されている都道府県名(北海道は、道北・道東・道央・道南)のリンクをクリックするわけですが、直接クリックするのではなく、まずはクリックしたい場所に目印となる名前をつけます。

それでは、実際にやってみましょう。[道北]を右クリック→[その他]→[名前付きタグとして設定]をクリックしてください。

 ※なぜ、「道北」なのか。それは、リンク一覧の先頭だからです。先頭だと、タグパスが・・・・うっ、これ以上の説明は難しくてできません。詳しくは、Kofaxのヘルプ「Kofax Kapow へようこそ > Design Studio > タグ ファインダーの使用 > タグ パス」を参照してください。


(2)そして、[アクション]タブの[タグ名]は[名前付き]を選択、[名前]は「地点名」と入力してください。


(3)次に、[ファインダー]タブの[タグパターン]に[天気情報.地点名1]を設定します。



(4)そして、エンドポイントをクリックすると、神奈川県の部分に[地点名]という名前が表示されます。


(5)その[地点名]を右クリック→[クリック]をクリックしてください。


(6)神奈川県の天気のページが表示されました。


(7)ここで、[Set Name Tag]ステップと、[Click 神奈川県]ステップをわかりやすい名前に変えてから、画面左上の[すべて保存]をクリックしておきましょう。

《例》

Set Name Tag → Set Name Tag 地点名
Click 神奈川県 → Click 地点名


(8)そして、イテレーションを進めて、設定ファイルの地点名のページが順番に表示されるか確認してください。


(9)今回のロボット作りはここまでにして、続きは次回がんばります。

最後に、名前付きタグありと、名前付きタグなしのファインダーを比べてみましょう。

名前付きタグありのファインダーには、[地点名]という目印だけが設定されています。一方、名前付きタグなしのファインダーには、神奈川県のリンクの場所が固定値で設定されています。こちらは、設定ファイルが変わると対応できません。


名前付きタグは、使いこなせればとても便利です。名前付きタグを目印に設定することで、その目印内だけでなく、目印の前や後や間などのリンクをクリックできたり、データを抽出できたり・・・・とにかく便利なのです。

時間があれば、設定ファイルの Column 2の地点名を使って、[〇〇県各地の天気]のリンク一覧をクリックして、天気予報情報の抽出とcsvファイル出力までやってみてください。答え合わせは次回の記事で。

 ※デザインモードで開発中に設定ファイルを変更したら、画面左上の[更新]をクリックしてキャッシュを削除してくださいね。


15 DAを使ってみよう

Device Automation(以下 DA)を使って、デスクトップ画面を操作してみましょう。

 ※DAのインストールと設定については「14 DAをインストールしよう」を参照してください。


【1】作成するロボットの概要

タスクバーのメモ帳を起動して文字を入力してから、保存せずに終了する。


【2】デバイスマッピングを作成する

(1)はじめに、今回使用しないプロジェクトは閉じておきましょう。プロジェクトを右クリック→[閉じる]で閉じることができます。

 ※プロジェクトを閉じても、ファイルは削除されません。


(2)新規プロジェクトを作成します。例えば、「DAプロジェクト」のような名前のプロジェクトを作成してください。


(3)次に、作成したプロジェクトの中にデバイスマッピングを作成します。これは、デスクトップ画面を操作するためのものです。

作成したプロジェクトを右クリック→[新規作成]→[Automation Device Mapping]をクリックします。

 

(4)オートメーションデバイスマッピングには「local_pc」と入力して、[次へ > ]をクリックしてください。


(5)そして、次のとおりに設定して、[終了]をクリックします。



【3】ロボットにデバイスマッピングを追加する

(1)ロボットを新規作成してください。ロボット名は、例えば「DAメモ帳操作ロボ.robot」などを入力します。


(2)次に、[ロボット設定]をクリックして、[デザインモード実行]を[スマート再実行(フル)]に変更します。


(3)ロボットが再ロードされたら、新しいアクションステップを追加して、[アクション]は[デバイスオートメーション]を選択します。


(4)そして、さきほど作成したデバイスマッピングを追加します。これで、デスクトップ画面を操作する準備ができました。

※事前にDAを起動しておいてください。


【4】デバイスワークフローを作成する

(1)1台のパソコンにDSとDAをインストールしている場合は、デスクトップ画面が操作しやすいように、DSの画面を小さくして右端に寄せてください。そして、タスクバーにメモ帳のアイコンをピン留めして、タスクバーは隠さないでください。

準備ができたら、[Device Automation]ステップの[ワークフロー]の[編集]をクリックします。


(2)すると、エディター画面が起動して、レコーダー・ビューにタスクバーが表示されます。

このレコーダー・ビューに表示されているのが実際のデスクトップ画面で、タブは起動しているアプリケーション毎に分かれています。

 ※タスクバーが表示されていないときは、[Taskbar]タブをクリックしてください。


(3)では、メモ帳を起動する操作を記録してみましょう。

レコーダー・ビューのタスクバーにあるメモ帳のアイコンを右クリック→[Click]→[Left]をクリックしてください。


(4)すると、ワークフローにステップが作成されます。作成されたステップは自動実行されませんので、[ステップオーバー]をクリックして実行してください。


(5)すると、メモ帳が起動します。


(6)ここで、メモ帳の操作の邪魔にならないように、エディタ画面を小さくして、メモ帳が隠れないようにしましょう。


(7)レコーダー・ビューのメモ帳の入力欄を右クリックして、[Enter Text In Field]→[Manually Enter Text]をクリックします。

各項目の位置は、実際の場所からずれて表示されることがあるので、ソース・ビューを確認しながら作業してください。


(8)次に表示されるダイアログには、好きな言葉を入力してください。ここに入力した文字がそのままメモ帳に入力されます。


(9)そして、忘れずに[ステップオーバー]をクリックしてください。

すると、レコーダー・ビューのメモ帳と、デスクトップ画面のメモ帳に、さきほどの文字が入力されます。


(10)次は、メモ帳を閉じましょう。

レコーダー・ビューのメモ帳の[×]を右クリック→[Click]→[Left]をクリックします。[×]の位置がずれていているときは、ソース部分で[閉じる]を探してください。クリックするのは、ソース部分でもOKです。

そして、ここでも忘れずに[ステップオーバー]をクリックします。


(11)すると、次のようなメッセージボックスが表示されますが、ここではボタンをクリックしないでください!

そして、エディタ画面の外側にそーっとドラッグして移動してください。


(12)次に、[メモ帳]([無題 – メモ帳]ではない方)のタブをクリックして、メッセージボックスの[保存しない]を右クリック→[Click]→[Left]をクリックします。ここでも、忘れずに[ステップオーバー]をクリックしてください。


(13)メモ帳が閉じて、レコーダー・ビューのタブからメモ帳が消えました。


(14)ここでエディタ画面を最大化してよく見ると、作成した各ステップに[!]マークが表示されています。これは、例外処理の[TimeOutError]が使えませんよーということで、そのままでも良いのですが、今回は削除してしまいましょう。

 ※トライステップで囲んで例外処理を有効にしてもOKです。


(15)各ステップの例外処理を削除したら、デバイスワークフローは完成です。保存]をクリックしてから、エディタを閉じてください。


【5】ロボットを実行する

(1)[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。

メモ帳を起動→文字を入力→保存せずに閉じる、という動きが見えましたか?

 ※メモ帳起動に時間がかかるときは、デバイスワークフローのメモ帳アイコンクリック後に[Guarded Choice]ステップを追加して、[Guard]は[When seconds have passed]を選択して、待機時間(秒)を指定してください。


DAは使い方にコツが必要ですが、パソコンが自動的に操作されるのを見るのは面白いですよね。(個人的感想)


11 メール送信

ここでは、前回の「10 Excelの読み込みと更新」で作成したメール本文を、実際にメール送信する処理を作成します。


【1】コメントステップまで処理を進める

(1)[四字熟語メール送信ロボ.robot]を右クリック→[開く]をクリックして開きます。


(2)コメントステップ[(ここでメール送信)]をクリックします。すると、エラーメッセージが表示されて、[送信日が未設定→]ステップで止まってしまいます。

これは、送信日が入力されている行のデータを読み込むと、[送信日が未設定→]ステップの先に進むことができないために起こります。


(3)イテレーションを送信日が入力されていない行まで進めて(ここでは4行目)、もう一度コメントステップ[(ここでメール送信)]をクリックします。


【2】メール送信ステップを設定する

(1)コメントステップ[(ここでメール送信)]をクリックしてから、ステップ・ビューの[アクションを選択]をクリック→[出力値]→[メール送信]をクリックします。


(2)次に、[メッセージ]タブをクリックして、[送信元アドレス]と[宛先アドレス]を設定します。

さらに、[件名]の右端にある[▼]をクリック→[エクスプレッション]をクリックします。

 ※宛先アドレスは、カンマ区切りで複数入力することも可能です。


(3)さらに、右端の[編集]をクリックすると[式エディター]ダイアログが表示されますので、次のように入力して、[OK]ボタンをクリックします。

 ※[エクスプレッション]をクリックして、[変数]や[オペレータ]を使いながら[件名]を作成してみましょう。[出力値]で結果を確認することができます。

replaceText(date(), "-", "/") + " - 四字熟語を覚えよう"

(4)次は、[メッセージ]の設定です。

[メッセージ]の右端にある[▼]をクリック→[変数]をクリックして、プルダウンメニューから[メール本文]を選択してください。


(5)続いて、[サーバー]タブをクリックして、送信元アドレスのメール設定を入力してください。

《入力例》

設定項目入力内容備考
メールサーバーsmtp.mail.yahoo.co.jp※送信メールサーバー
ポート465
ユーザーxxxxx@yahoo.co.jp
パスワード**********
暗号化SMTPS

 ※これは、Yahoo!メールの設定です。


(6)[ステップ名]は、処理の内容がわかるように「メール送信」に変更します。


(7)これで、メール送信ステップの設定は終わりです。画面左上の[すべて保存]をクリックして保存します。


【3】ロボットを実行する

(1)[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。

(2)処理が終了したら、次のことを確認してください。

  • ステータス・ビューの[ログ]に、メール本文が正しく表示されている 。
  • 四字熟語のExcelファイルが正常に更新されている。
  • メールが正常に送信されている。
ステータス・ビュー
四字熟語のExcelファイル
送信メール

これで、四字熟語をメール送信してくれるロボットが完成しました。せっかくなので、スケジュール実行したいですよね。ということで、次回はロボット管理サーバーでのスケジュール実行を紹介したいと思います。


10 Excelの読み込みと更新

前回は、Excelファイルを新規作成して出力するロボットを作りました。ここでは、既に存在するExcelファイルを読み込み、データを追加して上書き保存するロボットを作ってみましょう。

次の「四字熟語のExcelファイル」を使いますので、ファイルをダウンロードして任意の場所に置き、ファイル名を「四字熟語.xlsx」に変更しておいてください。


※ファイルの中身は好きなデータに入れ替えてもOKです。


【1】作成するロボットの概要

四字熟語のExcelファイルを読み込み、送信日が入力されていない四字熟語のデータを1件抽出して、メール送信する。メール送信を行ったデータには、送信日に現在の日付をセットして上書き保存する。

※メール送信処理は次回紹介します。


【2】操作手順を考える

操作1:四字熟語のExcelファイルを開く。

以下、Excelワークシートの行を繰り返す。

 操作2:[送信日]を抽出する。

 操作3:[送信日]が入力されているときは、次の行を読み込む

 ここからは、[送信日]が入力されていないときに実行される。

  操作4:[No]を抽出する。

  操作5:[四字熟語]を抽出する。

  操作6:[読み方]を抽出する。

  操作7:[解説]を抽出する。

  操作8:操作4~7で抽出した値を編集して、メール本文を作成する。

  操作9:操作8で作成した値をメール送信する。

  操作10:Excelワークシートの送信日に、現在の日付を入力する。

  操作11:四字熟語のExcelファイルを上書き保存する。

  操作12:繰り返しを終了する。

※操作手順の正解は1つではありません。他にどんな手順があるか考えてみてくださいね。


【3】プロジェクトを作成する

(1)メニューバーの[ファイル]→[新規作成プロジェクト]をクリックします。


(2)次に、[プロジェクト名]に「お手伝いプロジェクト」と入力して、[終了]をクリックします。これで、プロジェクトが作成されました。


【4】タイプ(変数)を作成する

(1)プロジェクト・ビューの[お手伝いプロジェクト]を右クリック→[新規作成]→[Type]をクリックします。


(2)次に、[タイプ名]は「四字熟語情報.type」と入力して、[終了]をクリックします。


(3)そして、タイプ・エディタが表示されたら[+]をクリックして、変数をひとつずつ作成していきましょう。


《作成する変数の名前と種類》

名前種類
送信日ショートテキスト(Short Text)
No整数(Integer)
四字熟語ショートテキスト(Short Text)
読み方ショートテキスト(Short Text)
解説ロングテキスト(Long Text)

(4)これで、タイプと変数の作成は終わりです。画面左上の[すべて保存]をクリックして保存してください。


【5】ロボットを作成する

【5-1】ロボットを新規作成して変数を追加する

(1)プロジェクト・ビューの[お手伝いプロジェクト]を右クリック→[新規作成]→[Robot]をクリックします。


(2)次のようなダイアログが表示されますので、[ロボット名]は「四字熟語メール送信ロボ.robot」と入力して、[終了]をクリックします。


(3)次に、変数を追加するために、変数・ビューの左下にある[+]をクリックします。


(4)そして、[タイプと初期 / テスト値]のプルダウンメニューから、タイプ[四字熟語情報]を選択して、[OK]をクリックします。

すると、「変数に名前がありません」というメッセージボックスが表示されますが、ここでは、名前はタイプ名と同じでよいので[はい]をクリックしてください。


(5)次に、Excel型の変数を追加するために、もう一度、変数・ビューの下にある[+]をクリックします。

そして、[名前]は「四字熟語エクセル」と入力して、[グローバル]にチェックを入れます。さらに、[タイプと初期 / テスト値]のプルダウンメニューから[Excel(シンプル)]を選択して[OK]をクリックします。


【5-2】四字熟語のExcelファイルを開く

(1)エンドポイントを右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[ファイルシステム]→[ファイル読込]をクリックします。


(3)ここで、はじめにダウンロードした四字熟語のエクセルファイルを読み込みます。

ファイルを読み込む方法は、用途に合わせて次の2種類から選びます。

① ブラウザ・ビューに読み込む(読み取り専用)
変数に読み込む(保存可能)

今回は、読み込んだファイルを上書き保存するので、「② 変数に読み込む」方法を選択します。

それでは、アクションの設定をしていきましょう。まず、[ファイル名]には、四字熟語のExcelファイルのフルパスを入力します。

《例》

C:\Users\(ユーザー名)\Documents\RPAロボ用データ\四字熟語.xlsx

そして、[出力値]は[変数に出力]を選択して、[変数]は[四字熟語エクセル]を選択します。


(4)次に、読み込んだファイルを開くステップを追加します。

エンドポイントをクリックしてから、右クリック→[ステップを前に挿入]→[アクションステップ]をクリックしてください。


(5)次に、[アクションを選択]→[変数を開く]をクリックします。


(6)そして、[変数]には、さきほど四字熟語のExcelファイルを読み込んだ[四字熟語エクセル]を選択します。


【5-3】送信日による条件判定を行う

(1)エンドポイントをクリックすると、ブラウザ・ビューに変数[四字熟語エクセル]のワークシートが表示されます。

ここからの処理は繰り返しになりますので、まずは、繰り返しステップを作成しましょう。

ワークシートの全件選択ボタンを右クリック→[ループ]→[選択中の行をループ]→[最初の行を除外]をクリックします。

すると、繰り返しステップ[Loop Rows]が追加され、ワークシートに青枠(繰り返しの目印)が表示されます。

 ※最初の行はヘッダーなので、繰り返しのデータから除外します。


(2)次に、送信日を抽出します。青枠内の送信日を右クリック→[抽出]→[テキスト]→[四字熟語情報.送信日]をクリックしてください。


(3)ここで、送信日が入力されているかどうかを判定します。エンドポイントを右クリック→[ステップを前に挿入]→[アクションステップ]をクリックしてください。


(4)そして、[アクションを選択]をクリック→[テスト]→[変数判定]をクリックします。


(5)ここで、[条件]の左下にある[+]をクリックして、判定する条件を追加します。「送信日が入力されているとき」という条件を設定してみましょう。

[変数]は[四字熟語情報.送信日]を選択して、[オペレータ]は[<>]を選択します。[値]は未入力のままにして、[OK]をクリックします。


(6)すると、[条件]に[四字熟語情報.送信日 <> “”]というアクションが追加されますので、その[条件]を満たすとき/満たさないときに実行するアクションを設定します。

ここでは、[If]は[すべての条件を満たす]を選択します。これで、送信日が入力されているときは、[Do]のアクション(エラー処理)を実行することになります。

 ※[条件]は[四字熟語情報.送信日 = “”]、[If]は[いずれの条件も満たさない]でもOKです。


(7)次は、[エラー処理]のタブをクリックして、送信日が入力されているときに実行するアクションを設定します。

[Then]は[次のイテレーション]を選択、[次のステップ]は[(直近の繰り返しステップ)]を選択してください。


これで、送信日が入力されているときは、[Loop Rows]ステップに戻り、次のイテレーションの処理を実行します。


(8)処理の内容がわかるように、[ステップ名]は「送信日が未設定→」と入力しておきます。


【5-4】四字熟語のデータを抽出する

(1)エンドポイントをクリックしてから、ブラウザ・ビューの青枠内のNoを右クリック→[抽出]→[数値]→[四字熟語情報.No]をクリックします。

 ※[数値を抽出 の設定]ダイアログは、そのまま[OK]をクリックします。


(2)次に、青枠内の四字熟語を右クリック→[抽出]→[テキスト]→[四字熟語情報.四字熟語]をクリックします。


(3)続けて、読み方と解説も抽出します。


【5-5】メール本文を作成する

(1)まず、作成したメール本文を入力するための変数が必要ですので、変数・ビューの左下にある[+]をクリックします。

そして、[名前]は「メール本文」と入力して、[タイプと初期 / テスト値]は[Long Text(シンプル)]を選択して、[OK]をクリックします。


(2)次に、エンドポイントを右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(3)そして、ステップ・ビューの[アクションを選択]→[変数の割当]をクリックします。


(4)ここから、メール本文を作成していきます。

まず、[変数]にプルダウンメニューから[メール本文]を選択してください。ここに、これから作成する文章が入力されます。

そして、[値]の右端にある[▼]をクリック→[エクスプレッション]をクリックします。


(5)[値]の右下にある[編集]をクリックすると[式エディター]ダイアログが表示されますので、[エクスプレッション]をクリックして、[変数]や[オペレータ]を使いながら文章を作成していきましょう。[出力値]で結果を確認することができます。

《例》

"四字熟語(" + 四字熟語情報.No + "日目)\n\n"
"----------------------------------------------------------\n "
四字熟語情報.四字熟語 + 四字熟語情報.読み方 + "\n"
"----------------------------------------------------------\n"
四字熟語情報.解説 + "\n\n"
"*四字熟語メール送信ロボ [◎□◎]*\n"

《式入力のルール》

  • 文字は””で囲む。(変数は囲まない)
  • 文字列の連結は「+」を使う。
  • 改行は「”\n”」と入力する

【5-6】コメントステップを追加する

コメントステップは、何も実行しないステップで、ロボットにコメントを追加するときに便利です。

ここでは、メール送信ステップの代わりに、コメントステップを追加しておきます。メール送信ステップは、すべてのステップが完成してから追加することにします。


(1)エンドポイントをクリックしてから、[ステップを前に挿入]→[アクションステップ]をクリックします。


(2)次に、[アクションを選択]→[その他]→[コメント]をクリックします。


(3)そして、[ステップ名]には「(ここでメール送信)」と入力しておきます。


【5-7】四字熟語のExcelファイルを上書き保存する

(1)まず、メール送信を行ったデータの送信日に現在の日付をセットします。

ワークシートの青枠内の送信日を右クリック→[修正]→[セット]→[テキスト]をクリックします。


(2)次に、[値]の右端の[▼]をクリック→[エクスプレッション]をクリックします。


(3)そして、[値]の下にある[エクスプレッション]をクリック→[関数]→[現在の日付: date()]をクリックして、[値]に「date()」が入力されたら、[OK]をクリックしてください。


(4)処理の内容がわかるように、[ステップ名]は「送信日をセット」と入力しておきましょう。


(5)次に、Excelファイルを上書き保存する処理を行います。

エンドポイントをクリックしてから、右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(6)次に、[アクションを選択]をクリック→[ファイルシステム]→[ファイル出力]をクリックします。


(7)そして、[ファイル名]は、四字熟語のExcelファイルのフルパスを入力します。

《例》

C:\Users\(ユーザー名)\Documents\RPAロボ用データ\四字熟語.xlsx

そして、[ファイルコンテンツ]は[四字熟語エクセル]を選択して、[ファイルエンコーディング]は[windows 日本語 (windows-31j) ]を選択します。これで、四字熟語のExcelファイルが上書き保存されます。


【5-8】メール本文をログ出力する

デバッグ時にメール本文を確認できるように、ログ出力のステップを追加しておきましょう。


(1)エンドポイントをクリックしてから、右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(2)次に、[アクションを選択]→[出力値]→[ログ出力]をクリックします。


(3)そして、[メッセージ]には、[メール本文]を選択します。


【5-9】繰り返しを終了する

送信日が入力されていない四字熟語データをメール送信して、四字熟語のExcelファイルを更新したら、繰り返しを終了します。


(1)エンドポイントをクリックしてから、右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(2)次に、[アクションを選択]→[その他]→[エラー生成]をクリックします。


(3)そして、[エラー処理]タブをクリックして、[Then]は[ループ終了]、[次のステップ]は[(直近の繰り返しステップ)]を選択します。これで、繰り返しを終了することができます。


(4)これで(メール送信処理はまだですが)ロボットは完成です。画面左上の[すべて保存]をクリックして保存してください。


【6】ロボットを実行する

(1)[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。

処理が終了したら、次のことを確認してください。

  • ステータス・ビューの[ログ]に、メール本文が正しく表示されている。
  • 四字熟語のExcelファイルが正常に更新されている。
ステータス・ビュー
四字熟語のExcelファイル

(2)もう一度ロボットを実行して、2件目以降も正常に処理されるか確認してみましょう。

ステータス・ビュー
四字熟語のExcelファイル

これで、メール送信までの準備は完璧です!次回はメール送信処理を行いましょう。楽しみですねー。


09 Excelファイル出力

前回は、csvファイルの出力を行いました。

csvファイルは、Excelアプリケーションで開くとExcelファイルと同じように見ることができますが、中身はテキストファイルなので、その作りはとてもシンプルです。

一方、Excelファイルはcsvファイルとは異なり、文字やセルを装飾できたり、複数のシートを含むことができる複雑なファイル形式です。

つまり、ロボットでExcelファイルを出力するときは、csvファイルとは違う手順で出力処理を行う必要があります。


【1】作成するロボットの概要

経費申請サンプルのページから、申請データ一の覧をExcelファイルに出力する。

《経費申請サンプルのページ》

  https://nowaydunno.home.blog/経費申請サンプル-01/

 ※実際に操作をしてみてくださいね。


【2】操作手順を考える

操作1:ブラウザで経費申請サンプルのページを開く。

操作2:ヘッダーをExcel型の変数に書き込む

以下、操作3~11は、表示されている申請データの一覧を繰り返す。

操作3:Noを抽出する。
操作4:状態を抽出する。
操作5:発生日を抽出する。
操作6:タイトルを抽出する。
操作7:金額を抽出する。
操作8:申請者を抽出する。
操作9:承認者を抽出する。
操作10:申請日を抽出する。
操作11:操作3~10をExcel型の変数に書き込む

操作12:最後に、Excel型の変数をファイルに出力する。


【3】タイプ(変数)を作成する

(1)プロジェクト・ビューの[研究ロボ]を右クリック→[新規作成]→[Type]をクリックします。


(2)次に、[タイプ名]に「経費申請情報.type」と入力して、[終了]をクリックします。


(3)タイプ[経費申請情報]が作成され、タイプ・エディタが表示されたら[+]をクリックして、変数をひとつずつ作成していきます。


《作成する変数の名前と種類》

名前種類
No整数(Integer)
状態ショートテキスト(Short Text)
発生日日付(Date)
タイトルショートテキスト(Short Text)
金額整数(Integer)
申請者ショートテキスト(Short Text)
承認者ショートテキスト(Short Text)
申請日日付(Date)

(4)これで、タイプと変数の作成は終わりです。画面左上の[すべて保存]をクリックして保存します。


【4】ロボットを作成する

【4-1】ロボットを新規作成して変数を追加する

(1)プロジェクト・ビューの[研究ロボ]を右クリック→[新規作成]→[Robot]をクリックします。


(2)次に、[ロボット名]は「経費申請出力.robot」と入力して、[次へ>]をクリックします。

そして、[ロボットを開始するURLを入力]に、経費申請サンプルのURLを入力して、[OK]をクリックします。

《経費申請サンプルのURL》

  https://nowaydunno.home.blog/経費申請サンプル-01/


(3)プロジェクト・ビューに[経費申請出力.robot]が作成され、ロボット・ビューに[Load Page]ステップが追加されて自動実行されます。ブラウザ・ビューには経費申請サンプルのページが表示されます。

ここで、さきほど作成したタイプの変数を追加するために、変数・ビューの左下にある[+]をクリックします。


(4)次に、[タイプと初期 / テスト値]のプルダウンメニューからタイプ[経費申請情報]を選択して、[OK]をクリックします。

すると、「変数に名前がありません」というメッセージボックスが表示されます。ここでは、名前はタイプ名と同じでよいので[はい]をクリックします。

これで、タイプの変数が追加されました。


(5)続けて、もうひとつ変数を追加します。

前述のとおり、Excelファイルは複雑なファイル形式のため、テキストファイルのように直接ファイルに書き込んでいくことができません。

ですから、一旦、Excel型の変数に書き込んでいき、最後にその変数をExcelファイルに出力するという手順で出力処理を行います。

 ※より詳しく知りたい方は、Kofaxのヘルプ「 Kofax Kapow へようこそ > チュートリアル > アドバンスド チュートリアル > Excel > Excel への書き込み」を参照してください。


(6)まず、変数・ビューの左下にある[+]をクリックします。


(7)次に、[名前]に「経費申請エクセル」と入力して、[グローバル]にチェックを入れます。そして、[タイプと初期 / テスト値]のプルダウンメニューから[Excel(シンプル)]を選択して[OK]をクリックします。

これで、Excel型の変数が追加されました。


【4-2】Excelファイルのヘッダーを書き込む

(1)画面上部の[選択したステップの前にステップを挿入]をクリック→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[変数を開く]をクリックします。


(3)ここで、[変数]はさきほど作成したExcel型の変数[経費申請エクセル]を選択してください。


(4)エンドポイントをクリックすると、ブラウザ・ビューにワークシートがが表示されます。これが、Excel型の変数[経費申請エクセル]です


(5)ここから、変数[経費申請エクセル]にヘッダーを書き込んでいきます。

A1のセルを右クリック→[修正]→[テキスト]をクリックします。


(6)次に、[値]に「No」を入力して[OK]をクリックします。


(7)続けて、B1のセルを右クリック→[修正]→[テキスト]をクリックします。


(8)次に、[値]は「状態」を入力して[OK]をクリックします。


(9)このように、タイプ[経費申請情報]の変数名を順番にヘッダーとして書き込んでいきます。


(10)そうすると、ヘッダー書き込みのステップが長くなってしまったので、グループ化しておきましょう。


(11)そして、[ステップ名]は[Excelヘッダー書き込み]と入力しておきます。


【4-3】繰り返しのステップを追加する

(1)エンドポイントをクリックします。そして、操作対象のウィンドウを変更するために、ブラウザ・ビューのタブ[経費申請サンプル(1/3)]を右クリック→[現在のウィンドウとして設定]をクリックします。


(2)次に、経費情報一覧の1件目のNoを右クリック→[ループ]→[テーブル繰り返し]→[最初の行を除外]をクリックします。


(3)すると、繰り返しステップ[For Each Tag Path]が追加され、1件目のデータに青枠(繰り返しの目印)が表示されます。イテレーションを進めて、青枠の動き(2件目→3件目→・・・・)を確認してください。


このような表形式のデータを繰り返す場合は、[テーブル繰り返し]を使うと便利です。ヘッダー部分を繰り返しに含めるかどうかは、[最初の行を含める]か[最初の行を除外]のどちらかで設定します。


【4-4】経費申請情報を抽出する

(1)イテレーションを[1]に戻して、青枠内のNoを右クリック→[抽出]→[数値]→[経費申請情報.No]をクリックします。


(2)そして、そのまま[OK]をクリックしてください。


(3)次に、青枠内の状態を右クリック→[抽出]→[テキスト]→[経費申請情報.状態]をクリックします。


(4)さらに、青枠内の発生日を右クリック→[抽出]→[日付]→[経費申請情報.発生日]をクリックします。


(5)そして、[テスト入力値]と[テスト出力]に発生日が表示されていることを確認してから、[OK]をクリックしてください。


(6)続けて、タイトル、金額、申請者、承認者、申請日を抽出します。


(7)すると、データ抽出ステップも長くなってしまったので、グループ化しておきましょう。


(8)そして、[ステップ名]は[申請データ抽出]と入力しておきます。


【4-5】Excel変数に書き込む

次は、抽出した値が入っているタイプ[経費申請情報]をExcel型の変数に書き込みます。この書き込み処理は繰り返しのたびに行われるので、新しいデータを既存データの後ろに追加してきます。

つまり、1行挿入してから1行書き込みという手順でデータを追加していきます。

 ※ブラウザ・ビューのワークシートに値を入力すると、Excel型の変数に値が書き込まれます。


(1)エンドポイントをクリックして、ブラウザ・ビューのタブ[経費申請エクセル]を右クリック→[現在のウィンドウとして設定]をクリックして、操作対象のウィンドウを変更します。


(2)次に、ワークシートの全件選択ボタンを右クリック→[設定]→[挿入]→[行]→[最後]をクリックします。


(3)ここで挿入する行数は1行なので、そのまま[OK]をクリックします。


(4)次に、A1のセルを右クリック→[設定]→[セット]→[行のコンテンツ]→[経費申請情報]をクリックします。


(5)そして、[日付フォーマット]はExcelファイルに出力したい日付の書式設定(ここでは「yyyy/MM/dd」)を入力します。

これで、タイプ[経費申請情報]を変数[経費申請エクセル]に書き込む処理ができました。


(6)イテレーションを進めて動作を確認してください。


【4-6】Excelファイルを出力する

このステップでは、変数[経費申請エクセル]をExcelファイルに出力します。

Excelファイルの出力処理は、Excel型の変数にすべてのデータを書き込んだ後に1度だけ行います。つまり、繰り返し処理の後に1度だけ行うということです。

繰り返し処理の後に実行するステップは、繰り返しステップの前にブランチを追加して、そのブランチの先に追加します。


(1)まず、繰り返しステップ[For Each Tag Path]の手前の矢印を右クリック→[ブランチを追加]をクリックします。


(2)次に、ブランチのエンドポイントを右クリック→[ステップを前に挿入]→[アクションステップ]をクリックします。


(3)そして、ステップ・ビューの[アクションを選択]→[ファイルシステム]→[ファイル出力]をクリックします。


(4)[ファイル名]は、出力するExcelファイルのフルパスを入力してください。

 例 : C:\Users\(ユーザー名)\Documents\経費申請情報.xlsx

(5)そして、[ファイルコンテンツ]は[経費申請エクセル]を選択して、[ファイルエンコーディング]は[windows 日本語 (windows-31j)]を選択します。


【4-7】値返却(Return Value)ステップを追加する

(1)最後に、値返却ステップを追加します。繰り返しステップの最後にあるエンドポイントを右クリック→[ステップを挿入]→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[値返却]をクリックします。

すると、ステップ名が[Return Value]に変更され、[変数]には[経費申請情報]が自動的に設定されます。


(3)これでロボットは完成です。画面左上の[すべて保存]をクリックして保存してください。


【5】ロボットを実行する

[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。

処理が終了したら、次のことを確認してください。

  • ステータス・ビューに、経費申請一覧の情報が表示されている。
  • Excelファイルが正常に出力されている。

Excel型の変数・・・・イメージしにくいかも知れませんが、ロボットでExcelファイルを出力するときは、Excel型の変数を開く→書き込む→変数をファイルに出力する、という手順だということは覚えておいてくださいね。


08 csvファイル出力

これまで、抽出した情報は画面に表示されるだけでしたが、それだけでは不便です。ここでは、csvファイルに出力するロボットを作ってみましょう。


【1】作成するロボットの概要

価格.comのノートパソコン人気売れ筋ランキングのページから、ランキングデータの一覧をcsvファイルに出力する。

《ノートパソコン人気売れ筋ランキングのURL》

  https://kakaku.com/pc/note-pc/ranking_0020/?

 ※実際に操作をしてみてくださいね。


【2】操作手順を考える

 操作1:ブラウザで価格.comのノートパソコン人気売れ筋ランキングのページを開く。

 操作2:csvファイルのヘッダーを出力する。

以下、表示されているランキングの一覧を繰り返す。

   操作3:[順位]を抽出する。

   操作4:[タイトル]を抽出する。

   操作5:[メーカー]を抽出する。

   操作6:[最安値]を抽出する。

   操作7:[満足度]を抽出する。

   操作8:[発売日]を抽出する。

   操作9:[リンク先URL]を抽出する。

   操作10:操作3~9をcsvファイルに出力する。


【3】タイプ(変数)を作成する

(1)プロジェクト・ビューの[研究ロボ]を右クリック→[新規作成]→[Type]をクリックします。


(2)次に、[タイプ名]は「ノートPCランキング情報.type」と入力して、[終了]をクリックします。


(3)[ノートPCランキング情報.type]が作成され、タイプ・エディタが表示されたら[+]をクリックします。


(4)そして、変数をひとつずつ作成していきます。


《作成する変数の名前と種類》

名前種類
順位整数(Integer)
タイトルショートテキスト(Short Text)
メーカーショートテキスト(Short Text)
最安値整数(Integer)
満足度数値(Number)  ※小数点あり
発売日ショートテキスト(Short Text)
リンク先URLショートテキスト(Short Text)

(5)これで、タイプと変数の作成は終わりです。画面左上の[すべて保存]をクリックして保存します。


【4】ロボットを作成する

【4-1】ロボットを新規作成して変数を追加する

(1)プロジェクト・ビューの[研究ロボ]を右クリック→[新規作成]→[Robot]をクリックします。


(2)次に、[ロボット名]は「ノートPCランキングcsv出力.robot」と入力して、[次へ >]をクリックします。

そして、[ロボットを開始するURLを入力]は、価格.comのノートパソコン人気売れ筋ランキングのURLを入力して、[終了]をクリックします。

《ノートパソコン人気売れ筋ランキングのURL》

  https://kakaku.com/pc/note-pc/ranking_0020/?


(3)プロジェクト・ビューに[ノートPCランキングcsv出力.robot]が作成され、ロボット・ビューに[Load Page]ステップが追加されて自動実行されます。ブラウザ・ビューには、価格.comのノートパソコン人気売れ筋ランキングが表示されます。

ここで、さきほど作成したタイプの変数を追加するために、変数・ビューの左下にある[+]をクリックします。


(4)次に、[タイプと初期 / テスト値]のプルダウンメニューから[ノートPCランキング情報]を選択します。


(5)[OK]をクリックすると、「変数に名前がありません」というメッセージボックスが表示されます。ここでは、名前はタイプ名と同じでよいので[はい]をクリックしてください。


(6)すると、変数・ビューに[ノートpcランキング情報]というタイプの変数が追加されます。


【4-2】csvファイルのヘッダーを出力する

ここでは、csvファイルのヘッダーを出力するステップを追加します。csvファイルを出力する手順は、下図のとおりです。


(1)画面上部の[選択したステップの前にステップを挿入]をクリック→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[ファイルシステム]→[ファイル出力]をクリックします。


(3)[ファイル名]は、出力するcsvファイルのフルパスを入力します。

  例 : C:\Users\(ユーザー名)\Documents\ノートPCランキング情報.csv

(4)そして、[ファイルコンテンツ]の右端にある[▼]をクリック→[コンバータ]をクリックします。


(5)[ファイルコンテンツ]には、初期設定で[変数の取得]が追加されていますので、[-]をクリックして除去します。


(6)次に、[値]の左下にある[+]をクリック→[出力値フォーマットの処理]→[CSVに追加]をクリックします。


(7)次のようなダイアログが表示されますので、[フォーマットを適用する変数]は[ノートpcランキング情報]を選択、[ヘッダーを作成]にチェックを入れます。

すると、[テスト出力]にヘッダーの値が表示されますので、確認してから[OK]をクリックしてください。


(8)ステップ・ビューの[ファイルコンテンツ]に[ノートpcランキング情報 を CSVとして追加]というアクションが追加されます。


(9)このままでは日本語が正常に出力されませんので、[ファイルエンコーディング]は[windows 日本語 (windows-31j)]を選択します。


【4-3】繰り返しのステップを追加する

(1)タイトルの部分を右クリック→[ループ]→[クラス付タグ繰り返し]→[rkgBoxNameItem]をクリックします。


(2)すると、繰り返しステップ[For Each Tag Path]が追加されます。


(3)ここで、繰り返しが正常に動くか試してみましょう。

[For Each Tag Path]ステップの[>]をクリックして繰り返し回数(イテレーション)を1つ進めます。

そして、1位のタイトルにあった青枠(繰り返しの目印)が、2位のタイトルに移動することを確認します。3位以降も試してみましょう。


【4-4】ランキング情報を抽出する

(1)イテレーションを[1]に戻してから、1位の順位を右クリック→[抽出]→[数値]→[ノートPCランキング情報.順位]をクリックします。


(2)そして、そのまま[OK]をクリックします。


(3)次に、1位のタイトルを右クリック→[抽出]→[ショートテキスト]→[ノートpcランキング情報.タイトル]をクリックします。


(4)さらに、1位のメーカーを右クリック→[抽出]→[ショートテキスト]→[ノートpcランキング情報.メーカー]をクリックします。


(5)続けて、1位の最安値を右クリック→[抽出]→[数値]→[ノートpcランキング情報.最安値]をクリックします。


(6)そして、そのまま[OK]をクリックします。


(7)次に、1位の満足度を右クリック→[抽出]→[数値]→[ノートpcランキング情報.満足度]をクリックします。


(8)そして、そのまま[OK]をクリックします。


(9)次に、1位の発売日を右クリック→[抽出]→[発売日]→[ノートpcランキング情報.発売日]をクリックします。


(10)さらに、1位のタイトルを右クリック→[抽出]→[URL]→[ノートpcランキング情報.リンク先URL]をクリックします。


(11)これで、ノートPCランキング情報の抽出は終わりです。変数・ビューで1位の情報を確認してみましょう。


【4-5】抽出した情報を確認する

ここで、イテレーションを1つずつ進めながら、変数・ビューに表示される情報を確認していきます。

すると、ブラウザ・ビューの2位の満足度は「4.68」ですが、変数・ビューの[満足度]には「5」が表示されています。


そして、ブラウザ・ビューの3位の満足度は「-」ですが、変数・ビューの[満足度]には「5」が表示されています。


ブラウザ・ビューの青枠(繰り返しの目印)は1位→2位→3位…と移動して、変数・ビューの[順位]や[タイトル]などもその順位の情報が表示されますが、満足度だけは1位の値のままです。どうやら、[満足度]の抽出に問題がありそうです。

 ※2位以下のデータで、1位と同じ満足度ではないときに発生します。


そこで、[満足度]が正常に抽出できない原因を調べるために、[満足度]の抽出ステップの設定を確認してみましょう。

まず、[満足度]に誤りがあるデータまでイテレーションを進めます。ここでは2位のデータなので、イテレーションを「2」にします。そして、[Extract 満足度]ステップをクリックして、ブラウザ・ビューのオレンジ枠(抽出対象)がどこにあるのかを確認します。

すると、2位の[満足度]を抽出すべきところで、5位の[満足度]を抽出していることがわかります。


さらに、イテレーションを「3」にして、3位の[満足度]のオレンジ枠(抽出対象)を確認してみると、こちらも5位の[満足度]になっていることがわかります。


こうして確認してみると、オレンジ枠(抽出対象)の設定に誤りがありそうだと推測できますので、設定を確認してみましょう。

下図のように、ソース・ビューの枠を広げて、HTMLのソースコードが見えるようにしてから、ブラウザ・ビューの1位の満足度をクリックします。すると、緑色の枠(選択対象)がブラウザ・ビューとソース・ビューの両方に表示されます。


ここで重要なのが、HTMLの「タグ」という目印です。

ソース・ビューの緑色の枠(1位の満足度)のタグ(<span class=”point rank5″>)を分解すると、次のようになります。

タグ   : span
属性名  : class
属性値  : point rank5   ※属性 class に設定されている値

次に、ブラウザ・ビューの2位の満足度をクリックします。すると、さきほどと同じように、緑色の枠がブラウザ・ビューとソース・ビューの両方に表示されます。


そして、ソース・ビューの緑色の枠(2位の満足度)のタグ(<span class=”point rank4h”>)を分解すると、次のようになります。

タグ   : span
属性名  : class
属性値  : point rank4h   ※属性 class に設定されている値

しつこいようですが、次に、ブラウザ・ビューの3位の満足度をクリックします。そして、緑色の枠を確認します。


ブラウザ・ビューの緑色の枠(3位の満足度)のタグ(<span class=”point rank0″>)を分解すると、次のようになります。

タグ   : span
属性名  : class
属性値  : point rank0   ※属性 class に設定されている値

ここまでで、[満足度]がなぜ正しく抽出できないのか、何となくわかったのではないでしょうか。

ここから、[満足度]を抽出するステップの設定を変更していきます。


【4-6】ファインダーを変更する

(1)[Extract 満足度]ステップを右クリック→[ステップを設定]をクリックします。


(2)次に、[ファインダー]タブをクリックします。[ファインダー]タブの画面では、アクションの対象となるHTMLタグを設定します。

ここで、アクションの対象となるタグ、つまり「満足度としてウェブページのどの部分を抽出するかを探すタグ」は、「属性値 = “point rank5” のとき」という設定になっており、1位の満足度はアクション対象となりますが、2位、3位は対象外となってしまうことがわかります。


(3)そこで、[属性値]は[テキストで始まる]を選択して、[テキスト]は「Point rank」に変更します。

これで、満足度の抽出対象は、[属性値]が「point rank」で始まるタグとなりました。


【4-7】満足度が正しく抽出されるか確認する

では、ロボットが正常に満足度を抽出するかどうか、試してみましょう。


(1)イテレーションを1つずつ進めながら、変数・ビューに表示される[満足度]を確認していきます。

まず、1位は問題ありません。


(2)次に、2位です。さきほどまでは1位と同じ値が表示されていましたが、ファインダーを変更したことで、正しい値(ここでは「4.68」)が表示されるようになりました。


(3)次に、3位です・・・・あれっ!?エラーが出てしまいました。エラーメッセージに「入力から数値を抽出できません」とありますので、3位のデータを確認してみましょう。


(4)ブラウザ・ビューのオレンジ枠(抽出対象)を確認してみると、「-」という値になっています。これは数値ではないので、数値型の変数[満足度]には入力できません

満足度は数値ではないこともあるようなので、対策を考えなければいけませんね。


【4-8】エラー処理を変更する

満足度の値が数値型で抽出できなくても処理を続行させるためには、エラー処理を変更する必要があります。

エラー処理は、アクションステップ毎に設定することができ、初期設定ではエラーが発生するとロボットは停止します。


(1)ステップ・ビューの[エラー処理]タブをクリックします。


(2)そして、[Then]は[無視して続行]を選択します。すると、[Extract 満足度]ステップの左上に小さな「→」が表示されます。これは、無視して続行する処理を表しています。


(3)これで、満足度の抽出に失敗しても処理が続行されるようになりました。ロボット・ビューのエンドポイントをクリックしてみましょう。

変数・ビューを確認すると、[満足度]は空欄ですが、エラーは発生せずに処理が続行されました。

 ※その他の項目でも、必要に応じてエラー処理を変更してください。


【4-9】csvファイルの明細を出力する

すでにcsvファイルのヘッダーを出力するステップがありますので、ここではそのステップをコピー&貼り付けして使いたいと思います。


(1)[Write File]ステップを右クリック→[コピー]をクリックします。


(2)次に、エンドポイントを右クリック→[ステップの前に貼り付け]をクリックします。


(3)[Write File]ステップが貼り付けされたら、[アクション]タブをクリックして、[ファイルに追加]にチェックを入れます。そうすることで、既存のcsvファイルに追記することができます。

次に、[ファイルコンテンツ]の右端の四角いマークの[編集]をクリックします。


(4)次のようなダイアログが表示されますので、[ヘッダーを作成]のチェックを外します。すると、[テスト出力]にタイプ[ノートpcランキング情報]の値が表示されますので、確認してから[OK]をクリックします。


【4-10】値返却(Return Value)ステップを追加する

(1)最後に、値返却ステップを追加します。エンドポイントの手前の矢印を右クリック→[ステップを挿入]→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[値返却]をクリックします。


(3)ステップ名が[Return Value]に変更され、[変数]には[ノートpcランキング情報]が自動的に設定されます。

これで、ロボットは完成です。画面左上の[すべて保存]をクリックして保存してください。


【5】ロボットを実行する

(1)[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。


(2)処理が終了したら、次のことを確認してください。

  • ステータス・ビューに、ノートパソコン売れ筋ランキング一覧の情報が表示されている。
  • csvファイルが正常に出力されている。

csvファイルの出力、ファインダーの変更とエラー処理の変更。ここで全て理解できなくても大丈夫ですが、どんな設定がどこでできるのかを知っていると便利ですよ。