こんにちは。
名古屋開発センター(NGC)の 伊藤 です。
この記事では、UiPath Studio Web(以下Studio Web)でGoogleスプレッドシート(以下スプレッドシート)を自動化する方法をご紹介します。
知識が0の方でもRPAを組めるように書いていきますので、記事が長くなる点はご容赦ください。
メインコンテンツに入る前にまずStudio Webが何か知りたい方は、公式のリリースや別記事でまとめているので見てみてください。
【UiPath公式:Studio Web ガイド】
https://docs.uipath.com/ja/studio-web/automation-cloud/latest/user-guide/overview
【クレスコエンジニアブログ】
UiPath Studio Webの機能紹介
目次
1Studio Webでスプレッドシートを自動化
1-1プロジェクトの新規作成
1-2スプレッドシートのアクティビティを知る
1-2-1アクティビティの共通仕様
●スプレッドシートへの接続
●処理するスプレッドシートの設定
1-2-2アクティビティ「範囲を読み込み」
1-2-3アクティビティ「範囲に書き込み」
1-3自動化サンプル
2最後に
1Studio Webでスプレッドシートを自動化
まずはUiPath Automation Cloud(以下Automation Cloud)からStudio Webにアクセスし、新規プロジェクトを作成しましょう。
【UiPath Automation Cloud】
Automation CloudからStudio Webにアクセス
Studio Web画面のタブ「プロジェクト」から“新しいプロジェクト”を作成
Studio Webでロボットを作成する場合、ロボットが実行するためのきっかけ「トリガー」を設定する必要があります。
今回は手動で実行するロボットを作成することとしますので、トリガーには“手動のオートメーション”を選択してください。
プロジェクトが新規作成できると以下のような画面になります。
次項からアクティビティの追加をしますが、UiPath Studio(以下Studio)やUiPath Studio X(以下Studio X)と同様に“+”ボタンからアクティビティを追加していきます。
※StudioやStudio Xと異なる点として、アクティビティの一覧からドラッグ&ドロップをするような機能は2024/9現在なさそうです。
プロジェクト画面とアクティビティの追加ボタン
スプレッドシートを操作するためのアクティビティはカテゴリ「Google Workspace」内に用意されています。
検索ワードとして「Google スプレッドシート」などを入力しても抽出することができます。
これを一覧にしたものが、以下の表です。
今回すべては説明しませんが、何個か使って実務的な例と共に使い方を紹介したいと思います。
アクティビティ名 |
アクティビティの説明 |
---|
スプレッドシートを作成 |
新しい Google スプレッドシートを作成します。 (Create Spreadsheet) |
繰り返し (スプレッドシートの各行) |
スプレッドシートの範囲から情報を読み込み保存し、後続のアクティビティ ([範囲に書き込み] など) で使用するために保存します。(For Each Row) |
範囲を読み込み |
スプレッドシートの範囲から情報を読み込み保存し、後続のアクティビティ ([範囲に書き込み] など) で使用するために保存します。(For Each Row) |
繰り返し (スプレッドシート内の各シート) |
スプレッドシート内のシートを反復処理します。(For Each Sheet) |
セルに書き込み |
指定したスプレッドシートのセルに情報を書き込みます。(Write Cell) |
セルを読み込み |
後続のアクティビティ ([セルに書き込み] など) で使用するために、指定したセルから情報を読み込みます。(Read Cell) |
範囲に書き込み |
選択したスプレッドシートの指定した範囲にデータ テーブルを書き込みます。(Write Range) |
シート名を変更 |
指定したスプレッドシートの指定したシートの名前を変更します。(Rename Sheet) |
シートを追加 |
指定したスプレッドシートに新しいシートを追加します。(Add Sheet) |
シートを削除 |
指定したスプレッドシートから指定したシートを削除します。(Delete Sheet) |
スプレッドシートを操作するためのアクティビティを一覧で紹介しましたが、ほとんどのアクティビティに共通した仕様があります。それが、「スプレッドシートへの接続」と「処理するスプレッドシートの設定」です。
●スプレッドシートへの接続
スプレッドシートのアクティビティではほとんどの場合スプレッドシートへ「接続」する必要があります。下図のように「Google Sheetsに接続」からUiPathとスプレッドシートの連携を行ってください。この接続はプロジェクト毎に一度行えばOKです。
接続できると「Google Sheetsのコネクション」に接続したアカウントとのコネクションが表示されます。
●処理するスプレッドシートの設定
処理対象とするスプレッドシートを「スプレッドシート」で設定する必要があります。赤丸で示す場所から対象のスプレッドシートを指定することができます。
①フォルダマークを選択するとGoogle Driveが表示され、Drive内からスプレッドシート選択することができます。
設定できると処理するスプレッドシートが表示されます。
【注意】
この方法は設定が簡単ですが、ロボット動作に合わせて設定したスプレッドシートから切り替えながら処理することができません。ロボットの動作に合わせて切り替えながら処理したい場合は②の設定方法を確認してください。
② “変数を使用”、“URLまたはID”で設定する方法もあります。
この方法で設定すると、スプレッドシートを動的に切り替えながら処理することができます。これらの方法で設定する場合は、“変数を使用”または“URLまたはID”を選択して入力モードを切り替えてください。
今回は“変数を使用”モードで設定する例を紹介します。
まずは、“変数を使用”をクリックしてモードを切り替えてください。
“変数を使用”モードで設定する変数の型は「GDriveRemoteItem」です。GDriveRemoteItem型の情報は、スプレッドシートのアクティビティ「スプレッドシートの作成」やGoogleDriveのアクティビティ「繰り返し (ファイル/フォルダー) 」の処理結果から得られます。
「繰り返し (ファイル/フォルダー) 」を使う場合、「スプレッドシート」の設定項目で「繰り返し (ファイル/フォルダー) 」で得られる”CurrentItem”を選択することができます。
設定ができると↓のような表示になり、今回の設定で言えば「マイドライブの中にあるスプレッドシートを順番に処理する」ことができます。
アクティビティの各項目について説明します。「Google Sheetsのコネクション」「スプレッドシート」の項目は「アクティビティの共通仕様」で説明しているので省略します。
①:範囲
スプレッドシートから読み込む範囲を設定します。設定するには「シート名」を設定することができます。スプレッドシートを読み込ませると選択候補から選択することも可能です。
②:先頭行をヘッダーとする
読み込む範囲の先頭行を表の「ヘッダー」とするか否かを選択する項目です。「ヘッダー」として読み込むことで、編集するデータから除いたり、データを選択したり、列名として操作することができるようになります。
③:読み込まれる範囲
読み込んだ表データが、DataTable型の変数「読み込まれる範囲」に格納されます。
④:範囲の情報
読み込むスプレッドシートの情報が、RangeInformation型の変数「範囲の情報」に格納されます。
⑤:読み込む内容
スプレッドシートの情報を読み込むときの形式を選択します。「値と数式」、「テキスト」、「値」から選択できます。特に意図がなければ、初期設定である「値」を選んでおけば問題ないと思います。
アクティビティの各項目について説明します。「Google Sheetsのコネクション」「スプレッドシート」の項目は「アクティビティの共通仕様」で説明しているので省略します。
①:範囲
スプレッドシートから読み込む範囲を設定します。設定するには「シート名」を設定することができます。スプレッドシートを読み込ませると選択候補から選択することも可能です。
②:ヘッダーを含む
「書き込む内容」で指定するDataTable変数の内容を書きこむときにヘッダー情報を持っていれば、ヘッダーを含めて書き込むかヘッダーを除いて書き込むかを選択することができます。
書き込み先のスプレッドシートに同じ列名が用意されている場合は“False”を選択しておけばOKです。
③:書き込み方法
“上書き”、“追加”、“右に追加”、“挿入”から選択することができます。選択肢として表示される説明通りです。説明は省略します。
④:書き込む内容
DataTable型の変数を設定できます。
例えば、アクティビティ「範囲を読み込み」で読み込んだ表データを指定することができます。
1-3自動化サンプル
サンプルとして、以下を想定した自動化のロボットを組んでみたいと思います。
- 1つのフォルダに複数のスプレッドシート
- スプレッドシートから読み取った情報を1つのスプレッドシートにまとめる
処理結果として以下のようにデータをまとめるような作業だと仮定します。
上記を自動化するためのサンプルが以下です。
まずは全体像を確認してみましょう。使っているアクティビティは3つ、「繰り返し (ファイル/フォルダー) 」「範囲を読み込み」「範囲に書き込み」です。「繰り返し (ファイル/フォルダー) 」の内部に「範囲を読み込み」「範囲に書き込み」を配置する形です。
それぞれのアクティビティを細かく見ていきたいと思います。
「繰り返し (ファイル/フォルダー) 」
①:検索場所
処理したいスプレッドシートを格納するフォルダを指定。
②:「上限数」と「返す対象」
「上限数」は任意で設定してください。「返す対象」は繰り返しの対象のことです。“ファイル”と設定していますが、対象フォルダにサブフォルダがある場合は“ファイルとフォルダ”を設定することで、指定したフォルダ配下すべてを探索することができます。
③:「追加フィルター」
今回は設定していませんが、条件を設定することでフォルダ配下にあるデータから「繰り返し」の処理対象とするデータを絞ることができます。条件としてファイル名やファイル種類などを指定することができます。
「範囲を読み込み」
①スプレッドシート
「繰り返し (ファイル/フォルダー) 」を配置すると選択できるようになる、“CurrentItem”を選択することで、対象フォルダ内のスプレッドシートから表データを読み込みます。
②範囲
「1-2-2アクティビティ「範囲を読み込み」」では「スプレッドシートを設定すると選択できる」と説明しましたが、変数によって指定する場合は選択による設定ができません。この場合は、シート名を自分で明記する必要があります。今回の場合は「“シート1”」と設定しています。
「範囲に書き込み」
①:スプレッドシート
書き込み先のスプレッドシートが常に変わらないような運用をする場合は、直接ファイルを設定してください。
②:ヘッダーを含む
書き込み先のスプレッドシートにあらかじめヘッダー(列名)を設定している場合、書き込むデータのヘッダーは不要なので、“False”を選択します。
③:書き込む内容
「範囲を読み込み」で取得した表データが格納されている変数“読み込まれる範囲”を選択しています。
実際の実行結果が以下です。
2最後に
今回、Studio Web でスプレッドシートを自動化するロボットを組んでみました。GoogleWorkspaceを自動化するとき、ファイル指定に独自の変数の型(GDriveRemoteItem)を用いていることと、その型の情報を取得できるアクティビティには何があるかを理解する必要があります。これらのようにアクティビティを見てもパッとわからない情報は、アクティビティの「ヘルプ」から確認したり情報をたどったりしてみてください!