こんにちは。テクノデサクットです。
- Power Automate DesktopでExcelのセルの値を取得したい。
こんな疑問にお答えします。
業務効率化と聞いて、まず思いつくのがExcel作業。
しかし、Excel作業の効率化には、まずセルの値を読み取らなくてはなりません。
私自身、ITヘルプデスクとしてPower Automate Desktopで様々な企業の効率化に貢献してきました。
当記事では、Power Automate Desktop Excelで単一のセルの取得から、複数セルの取得までお伝えします。
正直、これだけではExcel業務の効率化はできません。
ですが、Power Automate DesktopでExcel作業を効率化するための基礎となるため、ぜひご一読ください。
Excelでセルの値を取得するには「Excelワークシートから読み取る」を利用する。
Power Automate DesktopでExcelのセルの値を取得するには「Excelワークシートから読み取る」というアクションを使用します。
このアクションだけで、単一のセル値から範囲まで一気に取得できます。
やり方はとても簡単で、単一セルなら値を取得したいセル位置を指定します。
範囲を取得するなら、データ範囲の一番左上のセル位置と右下のセル位置をそれぞれ指定します。
【基本】Power Automate DesktopでExcelのセルの値を取得する方法
では、実際にPower Automate DesktopでExcelのセルの値を取得してみましょう。
事前準備として、こんなファイルを用意してみました。

Power Automate Desktopでの単一セル値取得手順
では、単一の値を取得してみましょう。
Power Automate Desktopを起動し、フローを作りましょう。
Excelの起動欄は「次のドキュメントを開く」を指定しましょう。
そして、ドキュメントパス欄に作成したファイルのフルパスを指定します。

入力が終わったら、保存をクリックします。
一応、作成された変数としてExcelInstanceが入っているのを確認しておきましょう。
Excelインスタンスは先程生成された変数が入っています。

以下のように入力します。
- 取得:単一セルの値
- 列:B
- 行:1
なお、列に関しては数字でもOKです。
入力が終わったら、保存します。
生成された変数としてExcelDataがあるのを確認してください。
実際にフローを起動させてみましょう。
画面右側のフロー変数にある、ExcelDataをダブルクリックし下記のように値が入っていればOKです。

複数の値を取得する方法
単一の値が取得できるようになったら、複数のセルや範囲を取得してみましょう。
アクションの追加は単一の値を取得するのと同じです。
たとえば、セルA1からC3を取得する場合は、以下のように設定します。
- 取得:セル範囲の値
- 最初の列:A
- 最初の行:1
- 最後の列:C
- 最後の行:3
実際にフローを動かしてみましょう。
以下のようになります。

単一の値との決定的な違いは、取得した値がテーブルとして変数に格納されている点です。
これによってテーブル全体だけでなく、テーブル内の一部の値も取得できます。
可変するテーブルの値を取得する方法
取得するExcelの範囲データは常に一定とは限りません。
むしろ、データは常に増えたり減ったりするのが普通でしょう。
Power Automate Desktopでは「データは常に増えたり減ったりするなら、最後の空白行や列から1つ戻った場所がデータの最後」だと考えます。
そこで利用するのが「Excelワークシートから最初の空の列や行を取得」アクションです。
やり方は簡単で、アクションを追加したらExcelインスタンスを指定するだけ。
実際にやってみましょう。
やり方はとても簡単で、アクションを追加したらExcelインスタンスを指定するだけ

変数として、以下の2つが生成されたのを確認しましょう。
- FirstFreeColumn:最初の空白列
- FirstFreeRow:最初の空白行
どちらもExcelデータの可変によって変わる数値となります。
では、範囲として取得してみましょう。
追加したら、以下のように入力します。
- 取得:セル範囲の値
- 最初の列:A
- 最初の行:1
- 最後の列:%FirstFreeColumn-1%
- 最後の行:%FirstFreeRow-1%
ポイントは、空白行や空白列の1個左または上に、最後の値が入っているので1を引きます。
ただし、書き方には注意しましょう。
プログラミングに慣れている方だと%FirstFreeColumn%-1と書きがちですが、Power Automate Desktopでは変数内で数値を引くような書き方をします。
そのため、%FirstFreeColumn-1%という書き方をします。
では、フローを起動してみましょう。

見事、テーブルの値が取れていますね。
FirstFreeColumnやFirstFreeRowも確認してみましょう。

このように、最初の空白行や空白列の4が表示されているはずです。
ここにデータを追加してみます。

再度、フローを実行すると

追加分もしっかりと反映されていますね!
ちなみにFirstFreeRowやFirstFreeColumnも数値が変わっています。
データ内に見出しがある場合
データ内に見出しがあれば詳細欄にある「範囲の最初の行に列名が含まれています」のスイッチをONにします。

この設定のままフローを起動すると、テーブルの1行目が見出しが変わります。

Power Automate DesktopでExcelのセルの値を取得する際のエラー対処法
Excelのセルの値を取得する際によくあるエラーと対処法をまとめました。
「Excelインスタンスを空にできません」
原因:最初に開くExcelを指定していないために起こります。
対処法:Excelの起動アクションを最初に追加し、Excelインスタンスを格納してください。
エラー2:「指定されたセルが存在しません」
原因:存在しない行や列を指定しています。
対処法:事前にExcelファイルを確認して、値を確認します。
ただし、何らかの理由で値を追記したり削除したりした場合はそれを加味して値を指定しましょう。
エラー3:「Excelが応答しません」
原因:Excelファイルが他のプロセスで使用中。ないしはサイズが大きすぎる。
対処法:フローを起動する前に対象のExcelファイルを閉じておきましょう。
特にチームで利用しているファイルはサイズも大きいので分割も検討しましょう。
年ごとに使っているなら前年度とのデータを分けるなどの工夫が必要です。
まとめ
以上、Power Automate DesktopでExcelのセルの値を取得する方法について、解説しました。
今回、解説した内容は以下の通り
- Excelのセル単一の値を取得する方法。
- 複数の範囲を取得するには、最初の列と行、最後の列と行を指定する。
- 可変するデータは最初の空白行や列を取得して、1を引いて取得する。
基本的には1つのアクションで全てできますが、可変するデータを扱う際は注意が必要です。
ぜひ、試してみてくださいね。