前回は、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 でファイルを開く」というフローを作成する。

  • 「Microsoft Excel でファイルを開く」というフローを作成

    「Excel でファイルを開く」というフローを作成

次のようにアクションを追加していく。

  • 「Excelの起動」アクションを追加

    「Excelの起動」アクションを追加

  • 「Excelの起動」を「次のドキュメントを開く」に変更し、「ドキュメントパス」に先ほど配置したKEN_ALL.CSVを指定する

    「Excelの起動」を「次のドキュメントを開く」に変更し、「ドキュメントパス」に先ほど配置したKEN_ALL.CSVを指定する

「Excelの起動」アクションで「次のドキュメントを開く」を選び、先ほど展開したCSVファイルを選択する。作成したフローは次のようになる。

  • 作成した「Microsoft Excel でファイルを開く」フロー

    作成した「Excel でファイルを開く」フロー

このフローを実行すると次のようにExcelが起動する。

  • 「Microsoft Excel でファイルを開く」フローを実行した結果起動してきたMicrosoft Excel

    「Excel でファイルを開く」フローを実行した結果起動したExcel

ダウンロードしたCSVファイルが開かれていることが確認できる。

Excelからデータを取得する

Excelがファイルを開いたら、次はセルを指定してそのセルのデータを取り出し、変数に入れることができる。その操作は「Excelワークシートから読み取る」アクションで行う。

  • 「Excelワークシートから読み取る」アクションを追加

    「Excelワークシートから読み取る」アクションを追加

読み取り方はいくつかあるが、ここでは1列1行目セルの値を取り出してみよう。次のスクリーンショットのように「先頭列」と「先頭行」に「1」と「1」を指定する。

  • 「先頭列」と「先頭行」に「1」と「1」を指定する

    「先頭列」と「先頭行」に「1」と「1」を指定する

上記アクションで取得した値が「%ExcelData%」変数に保存される。

では前回と同じく、この変数の中身をダイアログで確認するために「メッセージを表示」アクションを追加する。

  • 「メッセージを表示」アクションを追加

    「メッセージを表示」アクションを追加

表示する内容に「%ExcelData%」変数を含ませておく。

先ほどのフローに「Excelワークシートから読み取る」アクションと「メッセージを表示」アクションを追加したことで、フローは次のようになっている。

  • 「Excelワークシートから読み取る」アクションと「メッセージを表示」アクションを追加したフロー

    「Excelワークシートから読み取る」アクションと「メッセージを表示」アクションを追加したフロー

シンプルなフローだが、これでExcelのセルからデータを取り出せる。

Excelからデータを取得する

作成したフローを実行すると次のようにダイアログが表示される。

  • 作成したフローを実行した結果サンプル

    作成したフローを実行した結果サンプル

Excelを確認すると、1行1列目の値がダイアログと同じであることを確認できる。

  • Microsoft Excelでデータを確認

    Excelでデータを確認

Excelからデータを吸い出せればよいので、処理が終わったらExcelは閉じても問題ない。閉じる場合は、次のように「Excelを閉じる」アクションを追加しておく。

  • 今回の最終的なフロー

    今回の最終的なフロー

これで今回のフロー作成は完了だ。

実際にはもうちょっと工夫が必要

今回は1行1列目という特定のセルからデータを取り出したので処理がシンプルだが、通常は複数のデータを取り出したいケースのほうが多いだろう。その場合は、取り出したいデータの数分、繰り返し処理を行わなくてはいけない。

ローコードといっても、分岐処理や繰り返し処理は避けられない。Power Automateは複雑な分岐処理や繰り返し処理には向かないので、シンプルな分岐処理や繰り返し処理になる。次回は、Power Automateで分岐処理や繰り返し処理を行う方法について説明していく。