Windows11の教科書

ウィンドウズ11やスマホ・アプリで困ったことを調べたブログ

ウィンドウズ10やアプリで困ったことを調べたブログです。

スポンサーリンク


【Power Automate Desktop】エクセルを操作するには?[入出力・セルやシートの編集]

Power Automate Desktopは作業を定型化できる便利なツールです。エクセルにも対応しているので、エクセルの読み込みや書き込みにも威力を発揮します。

Power Automate Desktopでエクセル ファイル編

ExCeL

エクセルを開く

アクションで「Excel」の「Excelの起動」をドラッグします。

ダイアログが開くので「起動」で「次のドキュメントを開く」とし、ドキュメントファイルを選びます。

f:id:apicode:20210308141017p:plain

 

この状態で、上の再生ボタンを押すと、指定したエクセルファイルが起動することを確認しましょう。

f:id:apicode:20210308141151p:plain

 

エクセルを読み取る

開いたファイルの指定範囲を読み込みましょう。

アクションで「Excel」の「Excelワークシートから読み取り」をドラッグします。

するとダイアログが開きます。

 

B4セルの値をとるには、取得で「単一のセルの値」を選び、先頭列に「B」、先頭行に「4」と入れます。

f:id:apicode:20210308141403p:plain

 

実行して、フロー変数のところでB4セルにあった値が無事とれているか確認しましょう。

f:id:apicode:20210308141406p:plain

 

エクセルへ書き込む・保存する

アクションで「Excel」の「Excelワークシートに書き込み」をドラッグします。

するとダイアログが開きます。

書き込む値へ任意の値を入れ、書き込みモードや列、行を設定します。

以下は「B4」セルへ「ワンボーロン」という文字を書き込みます。

f:id:apicode:20210308152953p:plain

 

 これで実際動かすと、以下のように変更できました。

f:id:apicode:20210308153127p:plain

 

ただしこれはまだ保存していないので、ファイルとしてはデータを保持していません。

そこで、アクションで「Excel」の「Excelの保存」をドラッグします。

保存モードは「ドキュメントを保存」にします。

f:id:apicode:20210308153213p:plain

 

これで実行後、エクセルファイルを個別に起動してみると、値が変更された状態で保存されていたことを確認できると思います。

 

エクセルを閉じる

アクションで「Excel」の「Excelを閉じる」をドラッグします。

データ保存をさせる場合「Excelを閉じる前」で「ドキュメントを保存」にしましょう。

f:id:apicode:20210308153757p:plain

 

以上の組み合わせで、

・特定のエクセルファイルを開く

・特定のセルを読む

・特定のセルを上書き

・ファイルを保存

・ファイルを閉じる

といった一連の流れをフローにできると思います。

f:id:apicode:20210308153935p:plain

 

CSVの操作

CSVファイルでは、また別にCSVファイル用のアクションが用意されているのでそれを使うと便利です。

 

活用サンプルについては以下参照ください。 

【Power Automate Desktop】CSVを操作するには? - アプリの教科書

 

マクロの実行

マクロについては以下参照ください。

【Power Automate Desktop】エクセルのマクロ・VBAを実行するには? - アプリの教科書

 

 

Power Automate Desktopでエクセル 編集編

エクセルファイルを起動すると、「ExcelInstance」という変数を通じて開いたエクセルにアクセスできます。

 

シート

指定したシートをアクティブにする

セルの操作はアクティブなシートが対象で行われます。

そのため編集したいシートをアクティブにしておく必要があります。

アクションで「Excel>詳細>アクティブなExcelワークシートの設定」をフローに追加します。「ワークシート名」に指定したシートがアクティブとなります。

f:id:apicode:20210416143014p:plain



アクティブなワークシートを取得

行やセルの操作をする場合、アクティブなシートを確認してから操作したほうが間違が減ります。

 

アクションで「Excel>詳細>アクティブなExcelワークシートの取得」をフローに追加します。

f:id:apicode:20210416103316p:plain

 

実行後は「SheetIndex」という変数にアクティブなシートの番号が返ってきます。2つめのワークシートがアクティブだと2と返ってきます。

f:id:apicode:20210416103320p:plain

 

シートの追加

アクションで「Excel>詳細>新しいワークシートの追加」をフローに追加します。

「新しいワークシート名」で指定した名前のシートが作成されます。既に同じ名前のシートがある場合はエラーになります。

f:id:apicode:20210416143202p:plain

 

 

シートの削除

アクションで「Excel>詳細>Excelワークシートを削除」をフローに追加します。

「ワークシート名」で「Sheet2」などのように指定すると、該当するワークシートがある場合には削除されます。

f:id:apicode:20210416103614p:plain

 

シート名変更

アクションで「Excel>詳細>Excelワークシートの名前を変更」をフローに追加します。「ワークシート名」で指定したシートを「ワークシートの新しい名前」へ変更します。

シートが見つからない場合はエラーになります。

f:id:apicode:20210416140102p:plain

 

ワークシートをすべて取得

アクションで「Excel>詳細>すべてのExcelワークシートの取得」をフローに追加します。

f:id:apicode:20210416104203p:plain

 

実行すると「SheetNames」にシートの一覧が入ります。

f:id:apicode:20210416104206p:plain

 

個別のシート名ですが、例えば3つめのシート名は、0から数えて2つ目となるので「%SheetNames[2]%」のように指定して取得します。

f:id:apicode:20210416104556p:plain

 

 

行列

行の挿入

アクションで「Excel>詳細>Excelワークシートに行を挿入」をフローに追加します。

行インデックスで「2」のように指定すると2行目に空白行が挿入されます。

f:id:apicode:20210416103104p:plain

 

行の削除

アクションで「Excel>詳細>Excelワークシートから行を削除」をフローに追加します。

行の削除で「2」のように指定すると2行目が削除されます。削除されると、下の行が繰り上がります。

f:id:apicode:20210416102756p:plain

 

列の挿入

列は縦のならびです。

列を挿入するにはアクションで「Excel>詳細>Excelワークシートに列を挿入」をフローに追加します。列で指定した場所に挿入できます。

f:id:apicode:20210416141957p:plain

 

列の削除

 列を削除するにはアクションで「Excel>詳細>Excelワークシートから列を削除」をフローに追加します。「列の削除」で指定した列を削除します。

f:id:apicode:20210416141958p:plain

 

最初の空白行、空白列

データの終わりを確認するには、最初に空白となっている行や列を調べることでチェックできる場合があります。

「Excel>Excelワークシートから最初の空の列や行を取得」をフローに追加します。

f:id:apicode:20210416143503p:plain

 

実行すると「FirstFreeColumn」に最初の空の列の番号、「FirstFreeRow」に最初の空の行の番号が入ります。

f:id:apicode:20210416143618p:plain

空白行

列で最初の空白行を取得することもできます。

「Excel>詳細>Excelワークシートから列における最初の空の行を取得」をフローに追加します。列を指定すると...

f:id:apicode:20210416142446p:plain

 

その列の最初の空白行の番号が「FirstFreeRowOnColumn」変数に格納されます。

f:id:apicode:20210416142448p:plain

 

セル

セル選択

アクションで「Excel>詳細>Excelワークシート内のセルを選択」をフローに追加します。

f:id:apicode:20210416140846p:plain

 

上記のような設定の場合、A2~C6までを選択状態にしたのと一緒の操作となります。

f:id:apicode:20210416140854p:plain

 

選択したデータを取得するには、選択後にさらにアクションで「Excel>詳細>選択したセル範囲をExcelワークシートから取得」をフローに追加します。

f:id:apicode:20210416140638p:plain

 

これで取得される変数は

  • 選択開始の列の番号:FirstColumnIndex
  • 選択された最後の列の番号:LastColumnIndex
  • 選択開始の行の番号:FirstRowIndex
  • 選択された最後の行の番号:LastRowIndex

となります。

 

セルのコピー、ペースト

セルのコピペも自動化できます。

アクションで「Excel>詳細>Excelワークシートからセルをコピー」をフローに追加します。列と行を指定します。

f:id:apicode:20210416141449p:plain

 

複数のセルをコピーするには、「コピーモード」で「セル範囲の値」にするか「選択範囲の値」で指定します。

f:id:apicode:20210416141636p:plain

 

アクションで「Excel>詳細>Excelワークシートにセルを貼り付け」をフローに追加します。貼り付ける先の列と行を指定します。

f:id:apicode:20210416141451p:plain

 

 

 

不具合

データ変更が反映されない?

エクセルのセルを編集した後は、「エクセルを保存するフロー」を実行しないと、変更したデータが書き込まれません。

作業後に保存するフローも、きちんと追加しておきましょう。

 

また、該当のエクセルファイルが起動中の場合、PADからは「読み取り専用」として開かれれてしまい、PADで行った編集や保存が反映されないケースもあります。 

利用するエクセルファイルが閉じていることを確認してから実行してみましょう。

 

図形やグラフが取れない?

現在PADで提供されているアクションは上記のものであり、図形用アクションなどは見当たりません。

執筆時現在では、図形がとれるやり方の情報はないようです。

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

利用規約・プライバシーポリシー |〇問い合わせ