会社では、Excel操作を自動化したいというニーズが多いです。
VBAは敷居高いので、UiPathで実践してみてはいかがでしょうか?(VBAも楽しいですよ)
目次
今回やりたいこと
以下のようなExcelファイルがあります。
このExcelファイルのIDと氏名を以下のテンプレートファイルのC2・D2に転記しながら保存するというものです。
手で行うと面倒だなあという作業こそ、UiPathで自動化しましょう。
作成手順
1.Excelファイルを指定する
Excelファイルの操作はすべてこのアクティビティが必要といっても過言ではありません。
アクティビティ:Excel ファイルを使用 をドラッグアンドドロップしてください。
その後、+をクリックし、Excelファイルのパスを入力しましょう。
2.繰り返し(Excelの各行)を追加する
アクティビティ 繰り返し(Excelの各行)を追加します。
これがループの処理となります。
ここでポイントです!
ループさせる(データを取得する)エクセルファイルを参照したときに、A1から始まっているケースとヘッダーの上の行にデータが入っているケースで対象範囲の指定の仕方が異なります。
後者のケースは対象範囲の指定方法が異なる(ちょっと複雑)なので、別の記事でご紹介します。(今しばらくおまちくださいませ)
話を戻すと、前者のケースであれば、以下の通り、+をクリックし、Sheet1を選択すれば自動的に最後の行までUiPath側で指定してくれます。
また、今回は先頭行がヘッダー行となっているので以下のオプションにもチェックをしておきます
3.面談表のテンプレートを指定する
次に、データを転記する先のExcelを指定します。
このアクティビティはものすごくたくさん使いますね・・・!
同じく、テンプレートファイル(面談表)のファイルパスを入力しておきましょう。
なお、今回は二つのエクセルファイルを開いているので、後続の処理で分かりやすくするように、参照名を「面談表」に変更しました。
4.転記元のエクセルファイルからデータを取得して、面談表へ書き込みを行う
アクティビティの「セルに書き込み」を追加します。
ここが一番混乱しそうなポイントなのですが、今の状況をおさらいすると、エクセルの表の繰り返し処理を追加して、面談表を使えるようにしている状態ですよね。
では、今追加した「セルに書き込み」には何を入力するかというと、
書き込む内容:エクセルの表からIDを取得する
書き込む場所:テンプレートファイルファイルのIDのセル
ですよね。
では早速追加していくのですが、書き込む内容と書き込む場所でそれぞれ細かく解説していきます。
1.書き込む内容を選択する
ここでは、エクセルの表のIDの情報を入力します。
書き込む内容の+をクリックすると、CurrentRowというオプションが表示されます。
CurrentRowを選択すると、ヘッダー行の項目がたくさん表示されますので、ここからIDを選択します。
少し解説すると、Excelの表を一行一行繰り返してデータを取得していくのですが、この一行ずつ・・・の部分がCurrentRowとなります。
2.書き込む場所を選択する
次に、面談表のIDを入力するセルを選択します。
書き込む場所の+をクリックすると、以下のように面談表と記載がありますので、こちらをクリックし、「Excel内で示す」をクリックします。
ちなみに、先ほど指定した参照名はこちらとリンクしています!
さて、Excel内で示すをクリックすると、以下のようにExcelが開かれます。
入力するセルを選択し、リボンの中のUiPathタブを選択し、確認をクリックします。この作業を行うことで、UiPathの開発環境側にセルの位置が反映されます。
3.完了!
これで完了です。設定後の画面は以下の通りとなります。
同じく、氏名も転記が必要ですので、もう一つ作成しました。
IDの書き込みの次に追加しています。
5.保存するファイル名を生成する
個人毎のファイルを作成するため、以下のようなファイル名で保存したいと思います。
パフォーマンスレビュー_櫻井 翔.xlsx
上記の転記用というフォルダにファイルを格納したいので、
保存するファイルパスを生成します。
文字列の編集を行うには、アクティビティの共通>日付とテキスト のアクティビティを追加します。
今回は、フォルダパスとファイル名を結合したいと思います。
変更を追加から、テキストを結合をクリックします。
さて、上から順に説明します。
1.変更するテキスト
まずは、変更するテキストにフォルダパスを入力します。
変更するテキストの右の+のテキストをクリックし、フォルダパスを入力します。
次の手順でこのフォルダパスに氏名を結合するので、フォルダパスの一番右の¥を忘れないでください。
2.テキストを結合
追加する新しいテキストには、氏名を入力したいので、+からCurrentRow>氏名を選択します。
なお、1.のフォルダパスの右側にするので、以下の通り、追加する位置は右にしてください。
3.名前を付けて結果を保存
後にExcelの名前を付けて保存を行います。
前段の手順で取得した結果を保持しておくという処理がこちらです。
名前は「面談表_完成版」としてみました。
6.Excelに名前を付けて保存する
アクティビティの名前を付けて Excelファイルを保存するを追加します。
前の手順でファイルのフルパスを取得していますので、この手順で指定するのは、ファイルパスを入力するだけです。
保存するブックを選択します。ここでは、前に定義し、ID/名前を入力している「面談表」を保存するので、ブックは面談表を指定します。
ファイルの種類は以下の「.xlsx」で良いでしょう。
さて、ポイントのファイルパスですが、ファイルパスの+から、保存された値を使用>面談表_完成版 を選択します。
前の手順で作成したファイルパスですね!!
処理はこれで終了です!お疲れ様でした!
さいごに
ここまで記載した内容で、ほぼほぼいろんなことができることが分かりました!
StudioXだけでもVBAで実装することとほとんど同じことができますね!
正直VBAで作るよりも分かりやすい・・・
皆さんもこちらの記事を参考に作成してみてください!
[…] セルに書き込み […]
studioxでのリストの繰り返しの作業手順が大変分かり易く、ありがとうございます。
一点お尋ねになりますが、エクセルに名前を付けて保存の流れで、
テキストを変更しての作業は、名前を変更する部分を予め変数で作るという理解でよろしいのでしょうか。
また、ほかにも参考となる手順やサイト等をご存じであればお教えください。
Keiです。コメントありがとうございます!
まさにおっしゃる通りで、以下の手順が「変数に作成したいファイル名を格納して、保存するときにその変数を利用している」手順となります。
https://jinjineer.net/2022/03/06/uipath-excel-loop/#i-8