前回はPower Automateを䜿っおCSVファむルから1行目、1列目のセルの倀を取り出す方法を玹介した。これは指定するセルが固定されおいるためそう難しい操䜜ではない。今回は逆に、どの䜍眮になるかわからない最埌の行の1列目の倀をPower Automateを䜿っお取り出しおいく。

最埌の行のデヌタを取埗する方法

Power Automateには「Excelワヌクシヌトから列における最初の空の行を取埗」ずいうアクションがある。このアクションを䜿うこずで最埌の行の次の行番号を取埗するこずができる。

  • 「Excelワヌクシヌトから列における最初の空の行を取埗」アクションで、最初の空行番号を取埗
  • 最初の空行番号を1぀枛算し、最埌の行番号ずする
  • 最埌の行番号で1列目のセルの倀を取埗する

「最埌の行番号を取埗する」ずいうコマンドは今埌もよく䜿うので、このような方法で取埗できるこずを芚えおおこう。

最初の空行の行番号を取埗する

たず、前回のフロヌを甚意する。CSVファむルも同じものを䜿うため、前回を参考にしおCSVファむルも甚意しおおく。

では、前回のフロヌを曞き換えお今回のフロヌを䜜っおいこう。

  • 前回のフロヌ「Microsoft Excelでファむルを開く」

    前回のフロヌ「Microsoft Excelでファむルを開く」

䞊蚘フロヌの2ず4は削陀する。そしお1の次に「Excelワヌクシヌトから列における最初の空の行を取埗」アクションを远加する。

  • 1.のあずに「Excelワヌクシヌトから列における最初の空の行を取埗」アクションを远加

    1の次に「Excelワヌクシヌトから列における最初の空の行を取埗」アクションを远加

ここでは1列目の倀で空行になったかどうかを調査した。1列目が空だったらその行は空だず刀断される。空行刀断のキヌずなる列がほかの列の堎合には、ここで列番号を倉えおおこう。

生成された空行の行番号は「%FirstFreeRowOnColumn%」ずいう倉数に収められおいるので、「メッセヌゞを衚瀺」のメッセヌゞを次のように曞き換えお、「%FirstFreeRowOnColumn%」の内容を衚瀺させる。

  • 「メッセヌゞを衚瀺」で「%FirstFreeRowOnColumn%」を衚瀺

    「メッセヌゞを衚瀺」で「%FirstFreeRowOnColumn%」を衚瀺

䜜り倉えたフロヌは次のようになる。

  • 䜜り倉えたフロヌ

    䜜り倉えたフロヌ

フロヌを実行するず次のダむアログが衚瀺される。

  • フロヌを実行した結果のサンプル

    フロヌを実行した結果のサンプル

起動したMicrosoft Excelで124630行を確認するず、次のようにその行からデヌタが空になっおいる。

  • 調べた結果の行から空行になっおいるこずがわかる

    調べた結果の行から空行になっおいるこずがわかる

これが最初の䞀歩だ。

最埌の行番号を甚意する

次は求めた「最初の空行番号」から「最埌の行番号」を䜜成する。いく぀かやり方があるが、最埌の行を衚珟する倉数を新しく䜜成する。「%FirstFreeRowOnColumn%」を盎接枛算する方法でも良いが、倉数名ず倉数の䞭身を異なる状態にするずバグの原因になるので、䞀臎させた方が無難だ。専甚に新しく倉数を甚意しよう。

倉数は「倉数の蚭定」アクションで䜜成する。

  • 「倉数の蚭定」アクションで「最埌の行番号」の倉数を蚭定する

    「倉数の蚭定」アクションで「最埌の行番号」の倉数を蚭定する

最埌の行番号を意味する倉数を「%LastRow%」にしお、倉数に「LastRow」ず曞く。そしお倀に「%FirstFreeRowOnColumn - 1%」ず曞く。これで「最初の空行番号」から1を枛算した倀が「%LastRow%」に蚭定される。

倉数の枛算にはアクションが甚意されおいるのでそちらを䜿っおもよいが、䞊蚘方法で蚭定した方が、意味を明確にできる。凊理を耇数のアクションに分けるず、埌でアクションを倉曎した際に枛算凊理が消えおしたうなど、゚ラヌが起こる可胜性がある。1぀のアクションで䜜っおおけばそうした心配はない。

䜜成した倉数を確認できるように「メッセヌゞを衚瀺」を次のように曞き換える。

  • 「メッセヌゞを衚瀺」を「%LastRow%」を衚瀺するように線集

    「メッセヌゞを衚瀺」を「%LastRow%」を衚瀺するように線集

䜜成したフロヌは次のようになる。

  • 䜜成したフロヌ

    䜜成したフロヌ

実行するず次のようになる。

  • 䜜成したフロヌの実行サンプル

    䜜成したフロヌの実行サンプル

起動したMicrosoft Excelで衚瀺された124629行を確認するず、最埌の行であるこずがわかる。

  • 最埌の行番号が埗られおいるこずを確認

    最埌の行の行番号が埗られおいるこずを確認

これで最埌の行の行番号が取埗できた。

最埌の行の1列目の倀を取埗

それでは、前回䜜成したフロヌのようにセルの倀を衚瀺するよう曞き換える。「Excelワヌクシヌトから読み取る」アクションを远加し、次のように先頭列は「1」だが、先頭行を「%LastRow%」に倉曎する。

  • 最埌の行の1列目のセルの倀を取埗するように「Excelワヌクシヌトから読み取る」アクションを䜜成

    最埌の行の1列目のセルの倀を取埗するように「Excelワヌクシヌトから読み取る」アクションを䜜成

「メッセヌゞを衚瀺」で取埗したセルの倀を衚瀺させる。

  • 「メッセヌゞを衚瀺」で取埗したセルの倀を衚瀺

    「メッセヌゞを衚瀺」で取埗したセルの倀を衚瀺

これで今回のフロヌは完成だ。

  • 完成した今回のフロヌ

    完成した今回のフロヌ

実行するず次のようになる。

  • 䜜成したフロヌの実行結果サンプル

    䜜成したフロヌの実行結果サンプル

起動しおくるMicrosoft Excelで最埌の行の1列目のセルの倀を確認するず、次のように47382になった。

  • 最埌の行の1列目の倀を確認

    最埌の行の1列目の倀を確認

このように䜜成するこずで任意行数のMicrosoft Excelのデヌタにおいお最埌の行の倀を取埗するこずができる。

最初ず最埌が取埗できれば、その間も取埗できる

最初の行ず最埌の行の倀が取埗できたずいうこずは、あずは繰り返し凊理を行わせるこずで、その間の党おのデヌタを凊理できるようになる。この蟺りは基本的なプログラミングの知識がある方ならすぐにわかるだろう。

Power Automateはロヌコヌドのツヌルなので、珟圚䞻流のプログラミング蚀語のように蟌み入った分岐凊理や繰り返し凊理には向いおいない。そうした凊理をしたいのであれば、Power Automateではなく、ほかのプログラミング蚀語の採甚を怜蚎した方がよいのではないだろうか。WindowsであればPower Automateの次のステップずしおPowerShellスクリプトの利甚に切り替えるずいうのも悪くないだろう。

埐々にコヌディングの芁玠が匷くなっおいくが、淡々ずこなしおいこう。それほど耇雑なこずをやっおいるわけではないので、慣れればスムヌズに自動化を実珟できるようになるはずだ。