前回は、Power Automateを使ってMicrosoft Excel(以下:Excel)のファイルの新規作成作業を自動化する方法を取り上げた。Power Automateでは、Excelファイルを開いてデータを取り出したり、既存のファイルにデータを書き込んだりする作業の自動化も可能だ。今回はExcelファイルからデータを取り出す方法を紹介する。
CSVファイルをダウンロード
まず、Excelで開くデータとしてCSVファイルを用意する。どのようなデータを使ってもよいのだが、ここでは日本郵便が提供している「郵便番号データ」を使う。日本郵便の公式サイトにZIP形式のファイルが用意されているのでダウンロードしよう※。
※ リンククリックでダウンロードは発生しません。項目選択のページへ遷移します。
本稿では、「都道府県一覧」の「全国一括」をダウンロードした場合の操作を解説していく。
ZIP形式のファイルがダウンロードされるので、展開して中から.csvファイル「KEN_ALL.CSV」をデスクトップに置いておく。
日本郵便はUTF-8形式の郵便番号データ「住所の郵便番号(1レコード1行、UTF-8形式)(CSV形式)」の提供も開始したが、執筆時点ではExcelはこのファイルの文字コードを適切に判断して開けない。今回は上記URLから従来の形式のCSVファイルをダウンロードしていただきたい。
CSVファイルを開く
まず、CSVファイルをExcelで開くフローを作成する。まず、次のように「Excel でファイルを開く」というフローを作成する。
次のようにアクションを追加していく。
「Excelの起動」アクションで「次のドキュメントを開く」を選び、先ほど展開したCSVファイルを選択する。作成したフローは次のようになる。
このフローを実行すると次のようにExcelが起動する。
ダウンロードしたCSVファイルが開かれていることが確認できる。
Excelからデータを取得する
Excelがファイルを開いたら、次はセルを指定してそのセルのデータを取り出し、変数に入れることができる。その操作は「Excelワークシートから読み取る」アクションで行う。
読み取り方はいくつかあるが、ここでは1列1行目セルの値を取り出してみよう。次のスクリーンショットのように「先頭列」と「先頭行」に「1」と「1」を指定する。
上記アクションで取得した値が「%ExcelData%」変数に保存される。
では前回と同じく、この変数の中身をダイアログで確認するために「メッセージを表示」アクションを追加する。
表示する内容に「%ExcelData%」変数を含ませておく。
先ほどのフローに「Excelワークシートから読み取る」アクションと「メッセージを表示」アクションを追加したことで、フローは次のようになっている。
シンプルなフローだが、これでExcelのセルからデータを取り出せる。
Excelからデータを取得する
作成したフローを実行すると次のようにダイアログが表示される。
Excelを確認すると、1行1列目の値がダイアログと同じであることを確認できる。
Excelからデータを吸い出せればよいので、処理が終わったらExcelは閉じても問題ない。閉じる場合は、次のように「Excelを閉じる」アクションを追加しておく。
これで今回のフロー作成は完了だ。
実際にはもうちょっと工夫が必要
今回は1行1列目という特定のセルからデータを取り出したので処理がシンプルだが、通常は複数のデータを取り出したいケースのほうが多いだろう。その場合は、取り出したいデータの数分、繰り返し処理を行わなくてはいけない。
ローコードといっても、分岐処理や繰り返し処理は避けられない。Power Automateは複雑な分岐処理や繰り返し処理には向かないので、シンプルな分岐処理や繰り返し処理になる。次回は、Power Automateで分岐処理や繰り返し処理を行う方法について説明していく。