【エクセル操作】重複の削除


★アクションの説明、概要

Excelの重複したデータの削除を行う方法について説明しています。


★アクションの作成方法


★アクションの設定画面について

アクション設定画面の設定項目についての説明は以下の通りです。

1.基本設定

1-1.ブック

ロボットが開いているエクセルのうち、どのエクセルを操作対象にするか選択します。名前とインデックスから選択します。

・名前

エクセル名で指定します。変数参照可能です。

・インデックス

インデックスで指定します。ロボットがエクセルを開いた順番でインデックスが定義されます。

1-2.シート名

ロボットが操作するシートを選択します。名前とインデックスから選択します。

・名前

シート名で指定します。変数参照可能です。

・インデックス

インデックスで指定します。シートが作成された順番でインデックスが定義されています。

1-3.データ範囲設定

・現在の範囲

処理を行う範囲が対象となるセルの範囲に固定されます。

・範囲を拡張する

処理を行う範囲が処理の都度変わる可能性がある場合は、範囲を拡張するを選択します。

1-4.対象となるセル

処理を行う範囲を設定します。変数参照可能です。

1-5.重複が含まれている列を指定

重複が含まれている列を設定します。データ範囲設定で設定した範囲の一番左の列から1,2,3と数えます。


2.高度な設定

2-1.アクション有効

このアクションを無効にする場合は、チェックを外します。


3.エラー発生時の対応

3-1. エラー時の処理

エラーが発生したときの設定を行います。詳細はこちらをご確認ください。

3-2.基点となる条件分岐

エラー時の処理で条件分岐の次のフローに移動を選択したときに、設定することができます。アクションでエラーが発生した場合、移動先の条件分岐を選択します。

3-3. エラー時にログ出力

エラーが発生したときにログに出力するか設定します。スケジュール実行したときのログへ出力されます。エラーとして扱わない場合は、チェックを外します。詳細はこちらをご確認ください。

【アプリ操作】アプリの起動方法とそれぞれの違いについて

ロボットで操作したいアプリを起動のやり方は3種類あります。それぞれのやり方や注意点についてご説明します。

アプリを開くアクションを使った起動

ロボットで操作するアプリをアプリを開くアクションで起動する方法です。アプリを開くアクションについての説明はこちらです。

プログラムの個所にアプリが保存されているフォルダと実行ファイル名を設定します。

アプリ 起動方法 違い 操作

注意点1.起動できないアプリがある

この方法で起動できないアプリが存在します。その場合は、後述のいずれかの方法で起動してください。

注意点2.PCによってはアプリが保存しているフォルダが違う

ロボットを実行するPCによっては、起動するアプリの実行ファイルが保存されているフォルダが違うことがあります。

注意点3.スケジュール実行で起動したアプリは自動的に閉じられる

スケジュール実行でこの方法で起動したアプリは、スケジュール実行が終わると自動的に閉じられます。接続中のアプリを終了やすべてのアプリを終了アクションを実行しなくても、自動的に閉じられます。


タスクバーの中のショートカットで起動

タスクバーの中にあるアプリのショートカットをクリックして起動する方法です。アプリ接続アクションでタスクバーに接続し、ショートカットをクリックするアクションを実行します。

アプリ 起動方法 違い 操作

注意点1.PCによってはショートカットがないことが

ロボットを実行するPCによっては、アプリのショートカットがないことがあります。ロボットを実行する前に確認し、なければ作成しておきましょう。

注意点2.スケジュール実行で起動したアプリは自動的に閉じられない

スケジュール実行でこの方法で起動したアプリは、スケジュール実行が終わると自動的に閉じられません。閉じたい場合は、接続中のアプリを終了やすべてのアプリを終了アクションを使います。


デスクトップのショートカットで起動

デスクトップにあるアプリのショートカットをクリックして起動する方法です。アプリ接続アクションでデスクトップに接続し、ショートカットをクリックするアクションを実行します。

アプリ 起動方法 違い 操作

注意点1.PCによってはショートカットがないことが

ロボットを実行するPCによっては、アプリのショートカットがないことがあります。ロボットを実行する前に確認し、なければ作成しておきましょう。

注意点2.スケジュール実行で起動したアプリは自動的に閉じられない

スケジュール実行でこの方法で起動したアプリは、スケジュール実行が終わると自動的に閉じられません。閉じたい場合は、接続中のアプリを終了やすべてのアプリを終了アクションを使います。

注意点3.ショートカットが隠れているかも

スケジュール実行を行ったときに、デスクトップのショートカットにほかのアプリがかぶさってしまい、クリックが空振りする可能性があります。常に表示されているデスクトップの位置へショートカットを移動させておきましょう。

【共通部品】指定した日と同じ曜日である昨年の日付を取得する

★共通部品の説明・概要

指定した日の曜日と同じ曜日である昨年の日付を取得します。たとえば指定した日を2022年10月3日とすると、2022年10月4日が取得されます。また日を指定しない場合は、ロボットが実行された日が指定されます。


★共通部品のダウンロード

共通部品はこちらからダウンロードしてください。ダウンロードした共通部品をロボデザインでインポートして使用します。


★共通部品の使い方

1.共通部品へ渡す値

変数「処理日」へ任意の日付を渡します。渡さないことも可能です。渡さない場合、ロボットを実行している日付で処理されます


2.共通部品からもらう値

変数「昨年の同月同日」をもらいます。

【フォルダ操作】更新日時を変更せずにフォルダの移動を行う

1.手順

1-1.robocopyコマンドを実行

コマンドライン実行アクションで以下のコマンドを実行してください。フォルダやファイルの更新日時を保持したままコピーするオプションをつけています。

robocopy 移動元のフォルダパス 移動先のフォルダパス /DCOPY:DAT /NP /E /FFT /R:3 /W:3

以下サンプルコマンドです。移動元フォルダの中のフォルダやファイルが移動先フォルダへコピーされます。

robocopy C:\Users\noguchi\Desktop\テスト\移動元 C:\Users\noguchi\Desktop\テスト\移動先 /DCOPY:DAT /NP /E /FFT /R:3 /W:3

1-2.コピーしたフォルダを削除

フォルダ削除アクションを使って、フォルダを削除します。

2.うまくいかないときは?

2-1.コピー元やコピー先のフォルダの名前にスペースが入っている場合

コピー元のフォルダやコピー先のフォルダを「”」で囲ってください。

コピー元のフォルダやコピー先のフォルダの名前の中にスペースが入っています。この場合、コマンドを実行するとエラーが発生します。
“でそれぞれをかこって実行するとうまくいきました。

【ロボデザイン】Chromeドライバーが適用されないときは

Chromeを起動したときに、Chromeドライバーが適切に適用されないときは以下フォルダのspis.settingsを変更してください。※spis.settingsはWINDOWSのメモ帳で開くことができます

Chromeのバージョンを確認しましょう。

◆対象フォルダ
C:\Users\Windowsへのログインユーザー名\AppData\Local\spis\s3_projects

◆変更内容
10行目:
“drivers.chrome.current_driver”: “chromedriver_102.exe”,
 →102の部分をChromeのバージョンへ変更してください

52行目:
“drivers.chrome.current_version”: 102,
 →102の部分をChromeのバージョンへ変更してください

【共通部品】年度を取得する

★共通部品の説明・概要

取得したロボットの実行日から年度を返します。たとえばロボットの実行日が2021年8月×日であれば、2021が返ります。2021年3月×日であれば、2020が返ります。


★共通部品のダウンロード

共通部品はこちらからダウンロードしてください。ダウンロードした共通部品をロボデザインでインポートして使用します。


★共通部品の使い方

1.共通部品へ渡す値

共通部品へ渡す値はありません。


2.共通部品からもらう値

共通部品はユニークなデータの一覧を作成し、ロボットへ渡します。ロボットが受け取る変数を設定します。

2-1.操作日-年

年度が格納されています。

【共通部品】当月末日が土日の場合は一番近い金の日付を取得する

★共通部品の説明、概要

当月の月末が土曜日か日曜日の場合は、一番近い金曜日の日付を取得します。たとえば、2021年07月の月末日は2021年07月31日ですが土曜日なので、一番近い金曜日の07月30日を取得します。


★共通部品のダウンロード

共通部品はこちらからダウンロードしてください。ダウンロードした共通部品をロボデザインでインポートして使用します。

ダウンロードした共通部品をロボデザインでインポートして使用します。


★共通部品の使い方

1.共通部品へ渡す値

共通部品が処理をするために、共通部品へ渡す値を設定します。この共通部品には渡す値は設定する必要はありません。


2.共通部品からもらう値

共通部品は日付を取得し、ロボットへ渡します。ロボットが受け取る変数を設定します。

2-1.当月月末

共通部品が作成した月末日が格納されています。

【使い方】ロボットを作成するルール

なるべく早くロボットを作成して、運用スタートすることを目指したルールです。ぜひ参考にしてみてください。
わたしはこんなルールを設けてロボットを作成、運用しているという方はぜひご連絡ください!!

1.パラメータはロボットの外で管理する

ロボットが参照するフォルダ、ファイルパスなどのパラメータはロボットの外で管理しましょう。一般的にはエクセルで管理し、ロボットはエクセル内に記載されたパラメータを参照するイメージです。上級者の方はデータベースで管理してもいいかもしれません。

例)
・エクセルで管理する
日報作成作業_マスタ.xlsx


2.命名規則

命名規則1(プロジェクト名など)

ロボットが所属するプロジェクト名やパラメータのエクセルを保存するフォルダなどの命名規則を統一しておきましょう。

例)
・パラメータのエクセルを保存するフォルダ
C:\日報作成作業\パラメータ

・ロボットが出力したファイルを保存するフォルダ
C:\日報作成作業\ロボット

・ロボットが所属するプロジェクト名
日報作成作業

命名規則2(ロボット名)

ロボットは多くの場合プロジェクトの中に複数作成されます。ロボット名をルールにのっとってつけることで管理をしやすくしましょう

・先頭の3桁は数字。10ごとにロボットへ番号を割り当て。あとから追加で作成するロボットが作成済のロボットの間に入れられるようにするため。AとBのロボットがすでにあり、CをAの後に追加した場合が下の例。
例)
10-Aダウンロード
11-Cファイル加工
20-Bメール送信

・ロボット名は日本語
実行内容がわかるようにロボットの名前は日本語で。

・ロボットが何をどうしているか実行内容がわかるようにする
ロボット名からロボットの実行内容がわかるようにする。
例)
10-郵政から郵便番号をダウンロード
11-郵便番号ファイルをフィルタ加工
20-郵便番号ファイルをメール送信

命名規則3(変数グループ名・変数名)

ほとんどのロボットでは変数を使用します。この変数名や変数グループ名をルールにのっとってつけることでロボットの作成・保守を効率よく行いましょう

・変数グループ名や変数名は日本語
変数の役割、意味が分かるように日本語にしましょう。ほかの人へロボットを共有したり引き継ぐ時に、変数名が英語だと説明や理解に時間がかかります。

・取得した箇所の名前を変数名に使う
ブラウザ、エクセル、アプリ、様々なものから値を取得して変数へ格納します。このときの変数名はラベルや列名など、取得した箇所の名前をそのまま使いましょう。別の名前にすると頭の中で変換作業が必要になり、開発や保守作業に余計な時間を取られてしまいます。


3.ロボットを作成するときに気を付けること

・変数の役割は1つに

変数が持つ役割は1つにしましょう。1つの変数が2つも3つもあると、ロボットの処理が複雑になってしまいます(なんでこの変数をここで使っているの?と理解するのに時間がかかってしまう)

・初期化したい変数があるときは専用の変数グループで管理

ロボットの処理の中で変数を初期化する必要がある場合は、その変数を専用の変数グループで管理しましょう。変数グループ初期化アクションで簡単に初期化することができます。
手順:変数グループ初期化

・定義変数は専用の変数グループで管理

フォルダやファイルのパス、WEBサイトのURL、システムのログイン情報など、決まった情報を変数で管理することがあります。このような変数を管理しやすくするため、専用の変数グループで管理しましょう。

・アクションフローを見やすく

修正が発生したときに作業に取り掛かりやすいように、アクションフローをわかりやすくしておきます。アクションフローが見にくいと、フローの内容を理解しにくかったり修正箇所をなかなか見つけられなかったり、修正する作業に時間がとられてしまいます。

 -作業手順のかたまりでブランチをわけましょう。以下の例ではファイルを別名で移動する場合、どのようなブランチの内容になるかを説明しています。
手順:ブランチの追加・削除
 例)
 変数の値の加工(ファイル名生成)ーファイルをコピーーファイルを削除

 -ブランチの先頭にコメントを書きましょう。ブックマークアクションを作成し、そこにコメントを書きます。コメントはブランチ内の複数のアクションで行っている処理を説明する内容です。
手順:ブックマークの設置

・1作業、1ロボットに分解する

 -1作業、1ロボットに分割することでアクションフローは小さくなり、ロボットが行っている処理内容の把握がしやくすなります。
 たとえば郵政から郵便番号をダウンロードしメールで送る、という作業をロボットにした場合は以下のように分割されます。
10-郵政から郵便番号をダウンロード
20-郵便番号ファイルをメール送信

  分割することであとから郵便番号ファイルをフィルタ加工する作業が追加されても、新しいフィルタ加工ロボットを作成すればよく、作成済のロボットに追加をする必要がありません。

 -ロボットの作業状況の管理を行う
 ロボットが処理を開始していいのか、作業前提となるロボットの処理が終わっているのか、ロボットの作業状況の管理を行いましょう。

例)
「11-郵便番号ファイルをフィルタ加工」は作業開始前に、「10-郵政から郵便番号をダウンロード」が終わっているかを確認する必要がある。
たとえば、所定のダウンロードフォルダにダウンロードしてきたファイルがあることを確認します。

「20-郵便番号ファイルをメール送信」は「11-郵便番号ファイルをフィルタ加工」が終わっているかを確認する必要がある。
たとえば、所定の加工済フォルダに加工済のファイルがあることを確認します。

・変数の整理

ロボットが完成したら変数の整理を行いましょう。使っていない変数は削除しましょう
手順:変数の追加・削除

・アクションの整理

ロボットが完成したら不要なアクション、コメントアウトしたアクションは削除しましょう
手順:アクションの削除

・最適なグループ化をおこなう

どうしてもアクションフローが大きくなってしまったロボットはグループ化を行って、フロー全体を見やすくしましょう。ブランチごとに作業が分かれているので、ブランチごとにグループ化するのがおすすめです。
手順:グループ化

・引数の説明

引数を使って処理を行うロボットの場合、ROBOWEBのスケジュールの概要へ引数の役割を書いておきましょう
手順:スケジュール設定(引数の設定)

・アクションの説明

アクションの実行内容はアクション名を編集して書くようにしましょう。
例)
値の入力:今日の日付


5.安定して動くロボットを

作成するなら安定して動いてくれるロボットがいいですよね。

・画像マッチングはできるだけ使わない

アプリ操作で画像マッチングはどうしても使わざるを得ない場合以外は使わないようにしましょう。アプリ操作ではできる限り要素マッチング、それがだめなら文字マッチングを使います。画像マッチングは最後の手段です。

・エクセル操作を行う前に、エクセルの強制終了アクションを実行しましょう。

エクセルの強制終了アクションを行ってから、エクセルのアクションを行うようにします。ブックインデックスのずれによるエラーが発生するのを防ぎます。
手順:エクセルを強制終了する

・スケジュール実行時のログに出力する内容は?

ログ出力アクションを使うと、スケジュール実行のときのログにさまざまなログを出力することができます。そのときの画面ショットも出力できます。出力したらよいものをいくつかご紹介します。
手順:ログ出力

ー登録系の処理では、登録前の画面ショットをログ出力
システムへなんらかの登録を行う場合は、証跡を残すために画面ショットをログ出力することをおすすめします。

ーエラーの原因を調査するためにログ出力
ロボットが操作を行うシステムにイレギュラーなイベントが発生することがあります。そのときは往々にしてロボットの処理はエラーになってしまいます。スケジュール実行のログからではこのときは原因を把握することが難しいです。
そんなときにログ出力アクションを使って、システムの画面ショットをログ出力することをおすすめします。

・エラー発生時の対応の設定をできるだけ行ったほうがいい?

すべてのアクションへエラー発生時の対応の設定を行うのが理想です。でもアクションの数が多い場合は設定の手間、作成にかかる時間を考慮すると現実的ではありません。
手順:エラーが発生したときの処理の設定

ーエラー時の手順が決まっている場合は設定
エラーが発生したときの手順が決まっている場合は設定しましょう。たとえば、システムのログインに失敗しログイン後の画面の操作をできなかった、この場合は担当者にメールを送るという手順がある場合がこちらに該当します。

ー運用を開始しエラーが発生するたびに設定を行う方法も

ロボットの作成では最初からエラーが発生する個所を予見しておくのは、非常に困難です。エラーが発生しそうな個所を探し、エラーが発生したらこう処理する、というのをロボットの作成段階で行っていると作成に時間がかかってしまいます。

エラーが発生することは考慮せず、ロボットの運用を開始、その中で発生したエラーの対処を逐次行っていく、という方法もあります。

・再実行(リトライ)

ロボットは全くエラーがなく運用し続けることができるものではありません。何かしらの理由でエラーは発生します。
エラーがおきたときはロボットの設定を変更します。次に再実行を行いますが再実行に必要な条件や手順をスケジュールの概要へ記載しましょう

【ブラウザ操作】要素の繰り返しの便利な使い方

要素の繰り返しのうまい設定の仕方

要素の繰り返しは設定の仕方によっては、より便利に使うことができます。

以下のような各都道府県ごとに分かれている店舗リストがあります。この店舗名をすべて要素の繰り返しアクションを使って取得します。

loop1

要素の繰り返しアクションを作成する

要素の繰り返しアクションを作成しました。

loop2

通常の要素の繰り返しアクションの設定だと繰り返しの対象にならないものがある

以下の赤で囲った東京の部分しか、繰り返しの対象になりません。大阪や愛知を繰り返しの対象に入れるにはどうしたらいいのでしょうか。

loop3

取得範囲を拡張した範囲の要素にする

取得範囲の設定を拡張した範囲の要素にします。大阪や愛知も繰り返しの対象にすることができます。

loop4

xpathの除外で指定したものは繰り返しの対象から外れる

またxpathの除外を使えば、繰り返しの対象から外すこともできます。

loop5

xpathのフィルターで指定したものだけを繰り返しの対象とする

xpathのフィルターを使います。ループの対象にしたいものだけをピックアップできます。

loop6.png

表示値のフィルターで指定したものだけを繰り返しの対象とする

表示値のフィルターを使います。ループの対象にしたいものだけをピックアップできます。

loop8

xpathを編集し、指定したものだけを繰り返しの対象とする

またxpathへ以下のような書き方をして、ループの対象を絞ることもできます。

以下では、classがhistListData pauseのものを対象にしています。

loop9

一番最終行の処理だけを行う。

開始行へ「-1」と設定することで、繰り返す要素の一番最後の要素だけを処理対象にすることができます。

【アプリ操作】うまくいかないときは(要素マッチング)1

1.契約番号を取得してみます

アプリ操作の設定で要素マッチングにしたときに、要素を設定するコツを説明します。操作個所をうまく指定できない、または作成したアクションを実行したけどうまくいかない場合に本ページを参照してください。

以下の画面から契約番号を取得します。

apl_kotu1

2.マッチング方式を要素に

マッチング方式は要素にします。apl_kotu2


3.高度な設定タブで設定

3-1.名前は使用しない場合が多い

名前は処理の都度変わることが多いです。そのため、使用しない、にしましょう。
使用しない、にしてうまくいかないときは、名前を正規表現を使って設定してください。

apl_kotu3

3-2.設定を変更したら、設定した内容でロボットが認識するのか確認

・設定した内容で見つかったのか

設定を変更したら、全部で何件みつかりました、と表示を確認しましょう。(見つからない場合は、該当する要素が見つかりません、と表示されます)

apl_kotu4

・操作対象にフォーカスで確認

見つかった場合は、操作対象にフォーカスをクリックします。操作したい個所にフォーカスが当たることを確認しましょう。

apl_kotu5

3-3.インデックスを変更して、操作したい要素に設定する

以下のように複数件見つかった場合は、要素インデックスの値を変更します。1件しか見つからなかった場合は、要素インデックスは「0」になっています。

apl_kotu6

3-4.要素は見つかるがうまく操作できない場合は

それでもうまくいかないときは、キャッシュクリアにチェックを入れましょう。または要素をアクティブにするにチェックを入れてアクションを実行してみましょう

apl_kotu7

4.ステップ実行で確認するとうまくいくことも

アクションは作成されるが、処理が空振りしたような状態(たとえば値が入力されない)が起こることがあります。そのときは作成したアクションをステップ実行してみてください。作成時は空振りしたアクションが正常に実行されることがあります。


5.それでもうまくいかない場合は他のマッチング方式か、サポートへ質問ください。

それでもうまくいかないときは、マッチング方式を文字か画像にしてアクションを作成していただくか、もしくはサポートまでご相談ください。