StudioXのアクティビティ

UiPath StudioXのExcelアクティビティ【リソース・保存】

2021/05/20

Excelを自動処理で操作するためには、リソースをまず追加する必要があります。

追加したリソースの設定で、その後のExcelの動きに違いが出るので、確認しておきましょう。

また、Excelを編集した後の保存方法についても、併せてまとめました。

この記事では、以下のアクティビティについて解説します。

記事編集時のStudioX - ver2022.4.0

リソース・保存のアクティビティ

  • Excelファイルを使用
  • Excelプロセススコープ
  • 名前を付けてExcelファイルを保存
  • Excelファイルを保存

Excelアクティビティ専用の設定メニュー

アクティビティの解説へ入る前に、Excel専用のメニューについて、簡単に説明しておきましょう。

Excelのアクティビティを編集する場合、メニューに[Excel]という項目が追加されます。

この項目のおかげで、Excelへのアクセスがとてもスムーズに選択できるようになっています。

メニューの項目を分類すると、「シート名>名前」、「Excel内で示す」、「カスタム入力」に分けられますね。

それぞれの項目について見てikiましょう。

Excelのアクティビティは、プロジェクトノートブックの操作でも使用できます。

[シート名] >[名前の定義]

Excelに名前の定義が設定されている場合、メニューに一覧表示され、そこから選択できます。

名前の定義を設定する方法は、こちらで紹介していますので、参考にしてください。

UiPath StudioXのプロジェクトノートブック2【カスタマイズ編】

[Excel内で示す]

Excelを開いて、対象のセル/範囲を指定します。

[Excel]-[Excel内で示す]をクリックします。 反映したいセル/範囲を選択し、[確認]をクリックします。

カスタム入力

シート名やセルを、直接入力する方法です。

[Excel]-[カスタム入力]をクリックします。 各項目を入力します。
項目は、アクティビティによって異なります。

Excelファイルを使用(リソース)

オートメーションで使用するExcelファイルを開く、または作成します。(ガイドはこちら)

Excelファイルを操作するために、対象となるファイルをリソースで指定する必要があります。

詳しくは、リソースとアクションの組み立てルールを参考にしてください。

ここでは、以下の項目について解説します。

  • Excelファイル
  • 参照名
  • 変更を保存
  • 存在しない場合ファイルを作成
  • 読み取り値の書式
  • テンプレートファイル
  • 読み取り専用
  • [パスワード]と[編集用パスワード]

UIAutomationが使える

項目の解説に入る前に、アクティビティの操作の幅が広がる知識なので、お伝えしておきましょう。

[アプリとWebの自動化]アクティビティには、例えば[クリック]アクションや[キーボードショートカット]アクションなどありますよね。

これらアプリ/Webアクティビティを使って、Excelの画面を操作することが可能なのです。

サンプルとして、先頭行を固定する操作を、ショートカットを使って設定してみましょう。

先頭行を固定化するショートカットキーは、"Alt+W F R"です。

StudioXで組むと、次のようになります。

自動化できる幅が大幅に広がるので、ぜひ覚えておきましょう。

Excelファイル

指定できるファイル形式は、Excelブック、Excelマクロ有効ブック、テキスト、CSVなどです。

テキストやCSVファイルは、区切り文字や文字コードによって、読み込める読み込めないがあるので注意してください。

テキストファイルは、タブ区切りであること、CSVファイルはカンマ区切りであることです。

ですが、Excelソフトで普通に表示できればOK、これが一番わかりやすい判断方法でしょう。

また、SharePointやOneDriveのExcelも読み込み可能です。

SharePointやOneDriveのExcelを指定する場合は、URLを指定してください。

URLを取得する方法はこちら。

アプリケーションで開き、
[ファイル]をクリックします。
[情報]-[パスのコピー]をクリックしてください。

読み込める形式

  • Excelブック(*.xlsx、*.xls)
  • Excelマクロ有効ブック(*.xlsm)
  • テキスト(*.txt)…タブ区切り
  • CSV(*.csv)…カンマ区切り
  • SharePoint上のExcel
  • OneDrive上のExcel

参照名

[参照名]でリソースに名前を付けます。

ここで指定した名前で、指定したExcelの各情報にアクセスします。

初期値は"Excel"ですが、必要に応じて分かりやすい参照名に変更するといいでしょう。

参照名は、例えば複数のExcelファイルを開いた時、アクティビティがどちらのリソースを操作するかを指定する際に利用します。

変更を保存

チェックONにすると、Excelが編集されるたびに保存されます。

基本的にはチェックONのままでいいのですが、例えば、色んな編集をした後に保存したいこともあるでしょう。

その場合、チェックをOFFにしておいて、[Excelファイル保存]アクションを使うといいですね。

なお、Excelファイルが読み取り専用の状態か、もしくは[プロパティ]パネルで[読み取り専用]をチェックONにしている場合は、変更を保存できません。

存在しない場合ファイルを作成

[Excelファイル]で指定したファイルが存在しない場合、新しくExcelファイルを作成します。

読み取り値の形式

数値や日付を、どのような形式で表示させるか指定します。

4つの選択項目があります。それぞれ見てみましょう。

プロジェクトと同じ(null)

プロジェクトで設定している指定を参照します。

設定する箇所はこちら。

[プロジェクト]-[プロジェクト設定]を
クリックします。
[Excelモダン]-[Excelファイルを使用]-[読み取る値の書式]を
選択します。

既定

Excelから返される既定の表示形式です。

いくつか値を検証してみましたが、セルに表示されている値と同じ形式でした。

未処理の値

表示形式を無視した値を返します。

数式バーに表示されている値、と言ってもいいでしょう。

表示値

Excelで表示されている結果をそのまま返します。

設定による違い(メッセージボックスで表示)

日付と数値をメッセージボックスに表示し、比較してみました。

数式バーの値
(セルの表示)
2022/3/27 12:34:56
(令和4年3月27日)
1234.56789
(1,234.568)
既定 令和4年3月27日 1,234.568
未処理の値 03/27/2022 12:34:56 1234.56789
表示値 令和4年3月27日 1,234.568
Excelを複数ファイル扱う場合は[プロジェクトと同じ]を活用したほうが便利でしょう。
おぐし

テンプレートファイル

[Excelファイル]には、編集時点で存在しないファイル名も指定できます。

ただ、ファイルがまだ存在しない場合、アクティビティのメニューを利用しようとしても、直接シート名やセルを手入力することしかできません。

[+]の[Excel]をクリックすると、ファイルがないのでエラーになります。これだと編集が不便ですよね。

この時、[テンプレートファイル]をチェックONにして、作成するファイルと同じレイアウトのExcel(複製したものや原本)を選択します。

そうすると、編集時にはテンプレートで選択したファイルを参照しつつ、メニューを指定できるようになります。

一例ですが、Excelの原本があって、毎日原本をコピーしてから編集するような作業を自動化したい場合などに使えます。

この機能はありがたいですね。
おぐし

読み取り専用

チェックONにすると、Wordファイルを読み取り専用で開きます。

編集NGのExcelファイルを開く場合には、チェックONにしておくといいでしょう。

[パスワード]と[編集用パスワード]

Excelを開くためのパスワードが設定されている場合に指定します。

Excelでは、パスワードを設定する時と、パスワード付のファイルを開くときで、以下のようなウィンドウが表示されます。

パスワードを設定する(保存時) パスワード付のファイルを開く

Excelの"読み取りパスワード"が設定されている場合は、[パスワード]を指定します。

"書き込みパスワード"が設定されている場合は、[編集パスワード]を指定します。

Excelプロセススコープ

Excelプロセスを開くか、再利用します。[Excel ファイルを使用] アクティビティと組み合わせて使用し、Excel ドキュメントを開きます。(ガイドはこちら)

Excelを開いた際、マクロは有効/無効にするのか、Excelを画面表示/非表示にするかなど、いくつかの環境設定をカスタマイズ可能にします。

なおこのアクティビティは、[Excelファイルを使用]と一緒に使用するものです。

ここでは、以下の項目について解説します。

  • Excelウィンドウを表示
  • アラートを表示
  • [ファイルの競合の解決方法]と[プロセスモード]
  • マクロの設定
  • 既存のプロセスに対するアクション
  • 起動のタイムアウト
  • 起動方法

"プロジェクトと同じ"とは

各項目の選択肢には、"プロジェクトと同じ"があります。

これは、プロジェクトに最初から設定されている設定をそのまま使うということです。

まずは、その設定がどこにあるのでしょうか。

設定内容は、[デザイン]タブの[プロジェクト]-[プロジェクト設定]-[Excelモダン]にあります。

画面を開いて、[Excelモダン]を見ると、同じ項目名で表示されています。

ちなみに、"実行環境の値"と"デバッグ時の値"の2つありますが、"実行環境の値"は、[実行]をクリックしたときに影響する設定です。

"デバッグ時の値"は、アクティビティを右クリックしたメニューで、[このアクティビティまで/から実行]をクリックしたときに影響する設定です。

Excelモダンの実行環境とデバッグ

  • "実行環境の値"は、[実行]クリック時に影響する設定。
  • "デバッグ時の値"は、右クリックメニュー[このアクティビティまで/から実行]クリック時に影響する設定。

Excelウィンドウを表示

自動実行時に、Excel画面を表示するかどうかを選択します。

項目 説明
プロジェクト同じ プロジェクトの設定を引き継ぎます。
False Excelファイルを開かず、バックグラウンドで処理を実行します。
True Excelファイルを開いて処理を実行します。

Excelのを画面非表示にすることで処理スピードが速くなる効果があり、VBAマクロ界隈ではよく知られているテクニックです。

アラートを表示

Excelを編集している際に表示されるメッセージ(アラート)について、表示する/表示しないを選択します。

[アプリ/Web]アクティビティでExcelを操作する際には、手作業で行う場合と同じようにメッセージが表示されます

例えば、[重複を削除]を実行した後、削除結果のメッセージが表示されます。

他には、シートを削除する時にも表示されますね。

これらメッセージボックスを表示したい場合は"True"に、非表示にしたい場合は"False"にしてください。

項目 説明
プロジェクト同じ プロジェクトの設定を引き継ぎます。
False アラートを表示しません。
True アラートを表示します。

[ファイルの競合の解決方法]と[プロセスモード]

既に別のExcelプロセスで開いている場合、対象のExcelについてどうアクションするかを設定します。

[ファイルの競合の解決方法]は、[プロセスモード]で”存在する場合は再利用”を選択した場合に適用される設定です。※

[プロセスモード]は、Excelプロセスがどのような状態であるかにより、指定の動作から選択します。

色々なパターンで検証したのですが、公式ガイドとも異なる動作結果になっています。

僕が検証した結果、[ファイルの競合の解決方法]は、[プロセスモード]が”常に新規作成”を選択した場合に適用されました。

環境によって、動作に違いがあるのかもしれません。自分のマシンで動かしてみて、もし同じような動きになっている場合は参考にしてみてください。

[プロセスモード]の項目ごとに解説します。

プロジェクトと同じ

プロジェクトの設定を引き継ぎます。

常に新規作成

Excelファイルが閉じている場合・・・Excelファイルを開いてから処理を実行します。

Excelファイルが開いている場合・・・[ファイルの競合の解決方法]の選択により動作が変わります。

・[ファイルの競合の解決方法]の項目

項目 説明
プロジェクト同じ プロジェクトの設定を引き継ぎます。
なし ファイルに対して何も行いません。
結果、ファイルが読み取り専用で開かれるため、Excelに変更が加えられた場合にはエラーとなります。
保存せずに閉じる 既に何か変更が加えられている場合でも、一度キャンセルして開き直します。
ユーザーに確認 確認メッセージが表示され、[はい]を選ぶと強制終了してから開きます。
例外をスロー 使用中である旨のエラーが表示されます。

[有人オートメーションユーザー]と[存在する場合は再利用]

(2つの動作に、違いがみられませんでした。)

Excelのプロセスが複数存在する状態・・・すべてのExcelを強制終了するかどうか、確認メッセージを表示します。

Excelファイルが閉じている状態・・・Excelファイルを開いてから処理します。

Excelファイルが開いている状態・・・開かれている状態を流用して処理します。

存在する場合のみ

Excelファイルが開いている状態・・・開かれている状態を流用して処理します。

Excelのプロセスが複数存在する状態・・・すべてのExcelを強制終了するかどうか、確認メッセージを表示します。

この時、[はい]を選択すると、対象のExcelファイルが閉じられるので、結局エラーになります。

Excelファイルが閉じている状態・・・エラーになります。

Excelのプロセスが複数存在する状態とは

通常、Excelのプロセスは1つしか生成されません。

しかし、ある一定の条件を満たすと、Excelのプロセスが複数作成されることがあります。

現在プロセスが複数起動しているかどうかは、タスクマネージャーを見てください。

タスクマネージャーは[Ctrl]+[Shift]+[Esc]キー押下で開きます。

1つのプロセスの場合は、以下のようになります。

複数プロセスが起動している場合は、以下のようになります。

マクロの設定

Excelマクロの実行権限を制御します。

項目 説明
プロジェクト同じ プロジェクトの設定を引き継ぎます。
すべて有効化 マクロの実行が可能です。
すべて無効化 マクロの実行が無効化されます。
Excelの設定を使用 Excelのマクロ設定に従います。

ver2022.4.0では、Excelのセキュリティ、プロジェクト設定、Excelプロセススコープすべてを無効にしても、マクロが動作しました。現段階では、なぜ有効になってしまうのか不明です。

既存のプロセスに対するアクション

既にExcelファイルが開いている場合、強制終了するかどうかを選択します。

項目 説明
プロジェクト同じ プロジェクトの設定を引き継ぎます。
なし 何もしません。
強制終了 全てのExcelファイルを強制終了します。

起動のタイムアウト

Excelファイルが開くまで、待機する時間です。

既定値は20秒です。

指定時間内にExcelファイルが開けない場合は、エラーとなります。

起動方法

Excelの起動方法を選択します。

項目 説明
プロジェクト同じ プロジェクトの設定を引き継ぎます。
オートメーション 自動化APIによって起動します。アドインが読み込まれない分起動が速いとされています。
アプリケーション Excelを、普通に開いたときと同じように開きます。

既定値は"オートメーション"です。

特別アドインを導入していないのであれば、あまり気にする必要はないでしょう。

名前を付けてExcelファイルを保存

Excelファイルを別のファイルとして保存します。(ガイドはこちら)

別のファイル名、あるいは別のExcelファイル形式で保存します。

ここでは、以下の項目について解説します。

  • ファイルの種類
  • [ファイルパス]と[既存のファイルを置き換える]

ファイルの種類

保存するファイルの種類を指定します。

指定できる種類は4つです。

ファイルの種類

  • Excelブック(*.xlsx)
    標準的な保存形式です。
  • Excelバイナリブック(*.xlsb)
    xlsx形式と比べて表示するスピードが速く、ファイルサイズも小さいため、データ量が多い場合に用いられる形式です。
  • Excelマクロ有効ブック(*.xlsm)
    マクロを組み込むことができる保存形式です。
  • Excel97-2003ブック(*.xls)
    Excel2003以前の古い保存形式です。互換性を担保する必要があるときに使われます。
バイナリブックは、社内で使うのであれば利用の価値大です。
おぐし

[ファイルパス]と[既存のファイルを置き換える]

[ファイルパス]は、保存するファイル名を指定します。

既に同じファイル名が存在する場合に、上書きする場合は[既存のファイルを置き換える]をチェックONにしてください。

既存のファイルに上書きするとダメな場合は、チェックOFFにしましょう。

チェックOFFの場合は、同じファイルが存在すると自動化処理がエラーでストップします。

[ファイルパス]の指定方法(相対パスと絶対パス)

[ファイルパス]は、相対パスと絶対パスのどちらでも指定可能です。

相対パスとは、ファイル名のみを指定する方法です。

この場合、プロジェクトフォルダー内に保存されます。

プロジェクトフォルダーは、リボンの[プロジェクト]-[プロジェクトフォルダーを開く]で表示できるので、確認してみてください。

また、"..¥"(ピリオド×2+¥)を先頭に追記すると、「ひとつ上のフォルダ」という意味になります。

いくつか例を示しましょう。

パス指定の例

プロジェクトフォルダーが"C:¥temp¥Ogushi¥"の場合

  • "..¥Sample2.xlsx"         ⇒ "C:¥temp¥Sample2.xlsx"
  • "..¥..¥Sample2.xlsx"      ⇒ "C:¥Sample2.xlsx"
  • "..¥出力¥Sample2.xlsx" ⇒ "C:¥temp¥出力¥Sample2.xlsx"

なお絶対パスは、一番上のドライブ(通常はC:¥)から指定する方法です。

[ファイルを参照]からプロジェクトフォルダー以外のフォルダを指定すれば、自動的に絶対パスが入力されます。

Excelファイルを保存

選択したExcelファイル内の保留中の変更を保存します。(ガイドはこちら)

Excelの変更を保存します。

この解説だけだと、「自動的に保存してくれるんじゃないの?」と思うのではないでしょうか。

でも実は、[変更を保存]をチェックOFFにして、都度保存させないケースがあるんです。

保存する/しないを切り分ける

例えば、

ある一定の条件を満たした場合に限り、保存したい。

この場合、[変更を保存]をチェックOFFにしておき、[If]アクションを使って保存する/しないを切り替えることで可能になります。

チュートリアルのすすめ

アクティビティについて、より理解を深めるため、「チュートリアル: 独自の式のプロジェクト ノートブックへの追加」を読むことをお勧めします。

チュートリアルの内容について、読み砕いてまとめた記事を用意しましたので、こちらも併せて参考にしてください。

UiPath StudioXチュート読み砕き【独自の式のプロジェクトノートブックへの追加】

続きを見る

まとめ

リソースの設定を押さえておくだけでも、開発の効率が大きく変わりそうですね。

要点をまとめます。

まとめ

  • Excelの操作にUIAutomationが使用可能。
  • Excelのアクティビティはノートブックの操作でも利用可能。
  • 実行前にファイル名が存在しない場合は、リソースの[テンプレートファイル]が使える。
  • [Excelプロセススコープ]は、リソースに被せて使用する。

この記事で、何か1つでも新しい発見が得られたのなら、僕もうれしいです。

-StudioXのアクティビティ

© 2024 おぐしログのRPA入門