RPA初心者向け講座❻
エクセルファイル開閉の基本
Excel開く(前面化)
WinActorを使って多数のエクセルファイル(例えば、テレワーク報告書など)を自動集計するためには、自動的にエクセルファイルを開いたり、閉じたりすることが必要不可欠です。今回は、まず自動的に開く方法について説明します。
「ライブラリ➡18_Excel関連➡01_ファイル操作」と進んでください。その中に「Excel開く(前面化)」という操作があります。エクセルファイルを開く際にはこれを使用します。「前面化」って何?と気になる方もいらっしゃるかもしれませんが、これは、複数のエクセルファイルを開くときに、RPAの識別が容易になるように設定されていることを反映しています。初心者のうちは特に気にしなくても大丈夫です。
「Excel開く(前面化)」のプロパティ画面を開いてみましょう。
前回「第5回 配列操作の応用」においては、セル座標ファイルというエクセルファイルは最初から開いてありましたが、今回は、これを「Excel開く(前面化)」を使って開いてみましょう。
ファイル名とシート名を入力する欄がありますので、ファイル名の欄に「セル座標ファイル」、シート名は「値⇒Sheet1」と指定します。
Excel操作(保存なしで閉じる)
作業が完了すると、開いたエクセルファイルを閉じる必要があります。セル座標ファイルを開いたのは、そこに記載されているセル座標情報をWinActorに配列情報として覚えさせるために実施していますので、セル座標ファイルの中身は何ら更新されていません。したがって、保存なしでそのまま閉じればよいので、「Excel操作(保存なしで閉じる)」を用います。この操作も同様に「ライブラリ➡18_Excel関連➡01_ファイル操作」と進んだところにあります。
「Excel操作(保存なしで閉じる)」のプロパティ画面を開くと、ファイル名と実行結果という欄があります。ファイル名には保存なしで閉じるエクセルファイル名を指定するので「セル座標ファイル」と記入します。
実行結果の欄については、プロパティ画面上の■設定項目の[実行結果変数]を見てください。「実行結果を格納する変数を指定してください。閉じるのに成功した場合はtrueが格納されます。」と書かれています。要するに、うまく閉じることができれば、指定した実行結果変数にtrueを書き込みたいので変数が必要ですよと言うことです。結局、変数名は何でもよいので、ここでは「管理」としてあります。
前回「第5回 配列操作の応用」において作成したシナリオにエクセルファイルの開閉を入れてみましょう。これでファイルを手作業で最初から開いて置かなくても自動的に開き、作業を行い、自動的に閉じる操作が完成です。
ファイル一覧取得
ゴーヤンのテレワーク報告書と集計表
2022年8月、ゴーヤンは8月4日(木)、5日(金)、8日(月)の3日間、テレワークを実施しました。あれ、少ない?いえいえ、ゴーヤンは、そのあと長い夏休みを取得したので、8月に実施したテレワークは3日間だったのです。
今回は、これら3つの報告書を試験的にWinActorで自動集計してみることにします。WinActorの動作は、3回でも千回でも設計したとおりに動くので、テスト用ファイルは3つあれば十分です。
ファイル一覧(ファイル数)取得
さて、多数のエクセルファイルを手作業で集計するときに、最初に行う作業は何ですか?そうです。一つのフォルダに集めますよね。あちらこちらに保管しているものを探しながら集計するなんて不便で作業効率が悪いので、誰でもどこか一カ所に集めると思います。
WinActorに作業をやってもらうときも同じです。最初にどこかのフォルダに集計したいエクセルファイルを集めてください。これは手作業でやってくださいね。
集計したいファイルを集めたら、次に確認すべきことがあります。そうです。1カ所に集めたファイルの数を確認しますよね?WinActorに作業をやってもらうときも同じです。WinActorにファイル数を数えさせます。今回は最初から3つだとわかっていますが、フォルダ内にファイルがいくつあっても自動的に対応できるようにファイル数を数えさせます。
フォルダ内のファイル数を数えるときには「ファイル一覧(ファイル数)取得」を用います。「ライブラリ➡13_ファイル関連➡04_ファイル一覧」と進むと発見できます。
「ファイル一覧(ファイル数)取得」のプロパティ画面を開いてみましょう。フォルダ名とフォイル数の欄があります。
今回、ゴーヤンのテレワーク報告書は「テストフォルダ」というところに入れています。後から変数一覧で、正確な初期値を入れるのを忘れないでくださいね。
ファイル数の欄には、変数「対象ファイル数」としました。きちんと動作すると、今回は3つのエクセルファイルをテストフォルダに入れてありますので、変数「対象ファイル数」には「3」が自動的に入力されます。
ちなみに、フォルダ内に、関係ないファイルも混在しているとすべてカウントされ、あとでエラーが発生します。余計なファイルは混在させないことが基本です。
ファイル一覧(ファイル名)取得
「Excel開く(前面化)」を用いて、エクセルファイルを自動的に開くには、ファイル名とシート名の指定が必須となっています。上述の「Excel開く(前面化)」の説明では、「セル座標ファイル」として一つしかないエクセルファイルを開くので、ファイル名の設定とその初期値を設定して開きましたが、この方法では、ファイル名とシート名を毎回指定しなければ開けないことになります。シート名は、バラバラの名称を使わないで、例えば「Sheet1」のように統一しておけば問題ないですが、ファイル名は個々に異なります。
そこで、「ファイル一覧(ファイル名)取得」を使用し、フォルダ内に保管されているファイル名を順に取得することで、自動的にファイル名が得られるので、続けて「Excel開く(前面化)」において、エクセルファイルを自動的に開くことができるようになります。
要するに、ファイル名を個別に指定せずに、RPAが自動的に順次エクセルファイルを開いてくれると汎用性が高まりますので、これを実行するために「ファイル一覧(ファイル名)取得」を使用します。
つまり、この機能は、対象のフォルダ内に保管しているファイル名を順に取得し、それを変数の中に設定することに重要な意味があります。
「ファイル一覧(ファイル名)取得」のプロパティ画面をみてみましょう。
フォルダ名は「テストフォルダ」ですね。
カウンタ欄には、取得したいファイルの番号、つまり、1番目、2番目、・・・といった感じの値を指定しますが、順番にファイル名を取得したいので変数「ファイルカウンタ」としておきます。
ファイル名にはWinActorが取得したファイル名を保管する場所です。変数「開くファイル」としておきます。
種別欄については指定フォルダ内でファイルを見つければtrue、フォルダの場合falseが出力されると書いてあります。特段、出力結果は利用しないので「種別」としてあります。
取得したファイル名でエクセルファイルを開く
上述の「ファイル一覧(ファイル名)取得」の説明は少し難しかったかもしれませんね。いずれにせよ、「ファイル一覧(ファイル名)取得」に続いて「Excel開く(前面化)」を実行すると説明の意味が見えてくると思います。
「Excel開く(前面化)」のプロパティ画面を開き、ファイル名のところに「開くファイル」と入力します。そうすると、繰り返し操作と組み合わせることで、フォルダ内のエクセルファイルを自動的に次々と開くことができます。
また、繰り返し操作の設定においては、回数の欄に数字を設定するのではなく、ファイル一覧(ファイル数)取得で用いた変数「対象ファイル数」を入れます。今回は、ファイルが3つなので「3」が入っていることから、繰り返し操作は、3回繰り返されることになります。
そして、先ほど設定した変数「ファイルカウンタ」を用いて、動作を進行させていく訳ですが、今回の勉強はとりあえず、ここまでといたしましょう。
皆さま、大変お疲れさまでした。
今回は、ちょっと難しかったでしょうか?
でも安心してください。
次回の講座から本格的にゴーヤンのテレワーク報告書の集計作業が始まりますので、
具体例を見ながら勉強していただくと、もっと理解度が上がると思います。
お楽しみに!