みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Power Automate Desktopの最初の一歩からチュートリアル的に使い方について、できる限りていねいに解説するシリーズをお送りしています。
前回の記事はこちら。
Power Automate DesktopでExcelワークシートからの取得のアクションを追加し、その動作確認を行いました。
ただ、データ範囲ですが列数、行数を固定で指定してましたので、データが増減したときにちょっと不便です…
ということで、今回はPower Automate DesktopでExcelワークシートからデータのある範囲を取得する方法をお伝えします。
では、行ってみましょう!
前回のおさらい
まずは前回のおさらいからです。
以下のように「Excelワークシートから読み取り」のアクションを追加して、Excelからデータ範囲を取得することに成功しました。
ただ、「列3行4までの範囲のセルの値を読み取り…」とあるとおり、データの取得範囲を固定値でベタ打ちしていたんですね。
このままでは、取得したいデータの行数が増減するときに困ってしまいます。
今回は、その点を解消する方法をお伝えしますよ。
Excelワークシートから最初の空の列や行を取得
作戦としては、「Excelワークシートから最初の空の列や行を取得」というアクションを使います。
もし、1列目1行目からきちんとデータが隙間なく入力されているならば、空の列や空の行を取得して、その手前までの範囲をデータ範囲として取得できますものね。
「Excelワークシートから最初の空の列や行を取得」アクションを追加する
では、早速「Excelワークシートから最初の空の列や行を取得」アクションを追加していきましょう。
アクションペインから「Excel」アクショングループを開き、その名も「Excelワークシートから最初の空の列や行を取得」アクションを、1の次にドラッグ&ドロップします。
「パラメーターの選択」ダイアログが開きますね。
Excelインスタンスは、「Excelの起動」アクションで開いたExcelを表す「ExcelInstance」に設定されています。
また、「生成された変数」で以下変数が表示されているのを確認しましょう。
- FirstFreeColumn
- FirstFreeRow
これらの変数に、最初に空であった列数と行数がそれぞれ格納されるわけですね。
「保存」をすると、フロー変数にもそれらの変数が追加されていることが確認できます。
「Excelワークシートから最初の空の列や行を取得」の動作を確認する
では、「Excelワークシートから最初の空の列や行を取得」アクションの動作を確認していきましょう。
まず、追加したアクションの動作だけ確認したいので、いったん「3」の「Excelワークシートからの読み取り」は無効にしておきましょう。
右クリックして、メニューから「無効にする」のトグルです。
その上で、実行をしてみます。
すると、右側のフローの変数に最初の空の列と行の数が取得できているのが確認できますね。
- FirstFreeColumn: 4
- FirstFreeRow: 5
つまり、これらの変数を使って「Excelワークシートからの読み取り」のアクションの、最終列と最終行を設定すれば、元データの行列が変更になったとしても対応ができるようになるわけです。
最初の空の列や行を用いてデータ範囲を設定する
では、これらの最初の空の列や行を用いてデータ範囲を設定していきましょう。
「Excelワークシートから読み取り」のアクションをダブルクリックして開きます。
最終列に「3」と入力されていたを削除して、「{x}」をクリックします。
すると、フロー変数の一覧が表示されますので「FirstFreeColumn」をダブルクリックして選択します。
同様に、最終行も「FirstFreeRow」に設定します。
すると以下のように「%FirstFreeColumn%」「%FirstFreeRow%」がそれぞれ設定された状態になりますね。
ここで、いったん「保存」します。
データ範囲の取得を確認する
「3」の「Excelワークシートからの読み取り」を無効にしていたので、右クリックして「有効にする」のトグルをオンにします。
「実行」すると、フロー変数の「ExcelData」には「4行, 4列」とありますね。
ダブルクリックして確認してみましょう。
すると、以下のように余分な空の行と列が1つずつ含まれているようです。
もうすでにお気づきの方もいらっしゃったと思いますが、最初の空の列と行を設定していたので、最初の空の列と行も含んで取得されちゃうんですね。
空の列と行が含まれないようにデータ範囲を設定する
ということで、空の列と行が含まれないようにデータ範囲を設定していきましょう。
再度「Excelワークシートから読み取り」アクションをダブルクリックして、「パラーメターの選択」を開きます。
それで、以下のようにそれぞれ設定し直します。
- 最終列: %FirstFreeColumn – 1%
- 最終行: %FirstFreeRow – 1%
つまり、%の内側に「-1」を付与してあげます。
これで、最初の空の手前の列と行までをデータ範囲にできます。
再度実行してフロー変数の「ExcelData」を確認しましょう。
以下のように、純粋にデータのある範囲だけになりましたね。
まとめ
以上、Power Automate DesktopでExcelワークシートからデータのある範囲を取得する方法についてお伝えしてきました。
いろいろなアクションとその設定が用意されていて、細かいところに手が届くようになっていますね。
次回は、Excelを閉じる方法をお伝えします。
どうぞお楽しみに!
連載目次:はじめてのPower Automate Desktopのチュートリアル
Microsoftが提供するPower Automate DesktopはWindows 10ユーザーが無料で利用できるRPAツールです。ドラッグ&ドロップなどの簡単操作でルーチン作業を自動化することができます。本シリーズでは、その最初の一歩からのチュートリアルを、できる限りていねいに解説していきます。- 【超初心者向け】Power Automate Desktopとは何か、またその学ぶべき理由とは
- 【超初心者向け】Power Automate Desktopをインストールをする手順
- 【超初心者向け】Power Automate Desktopのフローとそのつくり方の概要について
- 【超初心者向け】Power Automate Desktopではじめてフローをつくる手順
- 【超初心者向け】Power Automate Desktopで不要なアクションを削除して実行確認する方法
- 【超初心者向け】Power Automate DesktopでExcelを起動するアクションを追加する方法
- 【超初心者向け】Power Automate DesktopでExcelワークシートからデータを読み取るアクション
- 【超初心者向け】Power Automate Desktopで取得したExcelデータの内容を確認する方法
- 【超初心者向け】Power Automate DesktopでExcelワークシートからデータのある範囲を取得する方法
- 【超初心者向け】Power Automate DesktopでExcelを閉じるアクションを追加する
- 【超初心者向け】Power Automate DesktopでExcelのデータ範囲について反復処理をする方法
- 【超初心者向け】Power Automate Desktopでメッセージの表示をループする処理の作り方
- 【超初心者向け】Power Automate Desktopでアプリへの入力をまとめて行うループ処理の作り方
- 【超初心者向け】Power Automate Desktopで指定したアプリケーションを実行する方法