SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Power Automate Desktopチュートリアル

Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」でPDFからのデータ抽出を自動化する

Power Automate Desktopチュートリアル 第11回

  • X ポスト
  • このエントリーをはてなブックマークに追加

PDFからテーブルを抽出する

 引き続き、同じフローを使い、テーブルを抽出するアクションを追加します。または、ここまでのフローをコピーして、新規フローのワークスペースに貼り付けても構いません。

[1]テーブルを抽出する

 [PDF]アクショングループの[PDFからテーブルを抽出する]アクションを配置すると、設定ダイアログが開きます。

図:PDFからテーブルを抽出するアクションの配置
図:PDFからテーブルを抽出するアクションの配置
図:PDFからテーブルを抽出するアクションの設定
図:PDFからテーブルを抽出するアクションの設定

 設定ダイアログには、以下の設定を選択/入力し、保存します。

  • PDFファイル:%Files[0]%
  • エラー発生時-すべてのエラー:フロー実行を続行する

 実行時には、抽出したテーブルがリスト変数ExtractedPDFTablesに格納されます。

[2]Excelを起動する

 [Excel]アクショングループの[Excelの起動]アクションを配置すると、設定ダイアログが開きます。

図:Excelの起動アクションの配置
図:Excelの起動アクションの配置

 設定すべきことはないので、そのまま保存します。

[3]Loopアクションを追加する

 [ループ]アクショングループの[Loop]アクションを配置すると、設定ダイアログが開きます。

図:Loopアクションの配置
図:Loopアクションの配置
図:Loopアクションの設定
図:Loopアクションの設定

 設定ダイアログには、以下の設定を入力し、保存します。

  • 開始値:0
  • 終了:%ExtractedPDFTables.Count - 1%
  • 増分:1
  • 生成された変数:%TableIndex%

[4]Excelシートの最初の空行を取得する

 [Excel]アクショングループの[Excelワークシートから最初の空の列や行を取得]アクションを[Loop]-[End]の中に配置すると、設定ダイアログが開きます。

図:Excelワークシートから最初の空の列や行を取得アクションの配置
図:Excelワークシートから最初の空の列や行を取得アクションの配置

 設定すべきことはないので、そのまま保存します。

[5]PDFのテーブルをデータテーブル変数として取得する

 [変数]アクショングループの[変数の設定]アクションを[Loop]-[End]の中の末尾に配置すると、設定ダイアログが開きます。以下の設定を入力し、保存します。

  • 変数:%Table%
  • 値:%ExtractedPDFTables[TableIndex].DataTable%
図:変数(テーブル)の設定アクションの配置
図:変数(テーブル)の設定アクションの配置
図:変数(テーブル)の設定アクションの設定
図:変数(テーブル)の設定アクションの設定

[6]テーブルのヘッダーを変数に取得する

 [変数]アクショングループの[変数の設定]アクションを[Loop]-[End]の中の末尾に配置すると、設定ダイアログが開きます。

図:変数(ヘッダー)の設定アクションの配置
図:変数(ヘッダー)の設定アクションの配置
図:変数(ヘッダー)の設定アクションの設定
図:変数(ヘッダー)の設定アクションの設定

 設定ダイアログには、以下の設定を入力し、保存します。

  • 変数:%Headers%
  • 値:%Table.ColumnHeadersRow%

[7]テーブルのヘッダーをワークシートに書き込む

 [Excel]アクショングループの[Excelワークシートに書き込み]アクションを[Loop]-[End]の中の末尾に配置すると、設定ダイアログが開きます。

図:Excelワークシートに(ヘッダーを)書き込みアクションの配置
図:Excelワークシートに(ヘッダーを)書き込みアクションの配置
図:Excelワークシートに(ヘッダーを)書き込みアクションの設定
図:Excelワークシートに(ヘッダーを)書き込みアクションの設定

 設定ダイアログには、以下の設定を入力し、保存します。

  • 書き込む値:%Headers%
  • 列:1
  • 行:%FirstFreeRow + 1%

[8]テーブルデータをワークシートに書き込む

 [Excel]アクショングループの[Excelワークシートに書き込み]アクションを[Loop]-[End]の中の末尾に配置すると、設定ダイアログが開きます。

図:Excelワークシートに(テーブルデータを)書き込みアクションの配置
図:Excelワークシートに(テーブルデータを)書き込みアクションの配置
図:Excelワークシートに(テーブルデータを)書き込みアクションの設定
図:Excelワークシートに(テーブルデータを)書き込みアクションの設定

 設定ダイアログには、以下の設定を入力し、保存します。

  • 書き込む値:%Table%
  • 列:1
  • 行:%FirstFreeRow + 2%
  • エラー発生時-すべてのエラー:フロー実行を続行する

[9]Excelシートを保存する

 [Excel]アクショングループの[Excelの保存]アクションを[End]の後に配置すると、設定ダイアログが開きます。

図:Excelの保存アクションの配置
図:Excelの保存アクションの配置
図:Excelの保存アクションの設定
図:Excelの保存アクションの設定

 設定ダイアログには、以下の設定を選択/入力し、保存します。

  • 保存モード:名前をつけてドキュメントを保存
  • ドキュメントパス:%NewFolder%\%FileName%_Tables.xlsx

[10]Excelを閉じる

 [Excel]アクショングループの[Excelを閉じる]アクションをフローの末尾に配置すると、設定ダイアログが開きます。

図:Excelを閉じるアクションの配置
図:Excelを閉じるアクションの配置

 設定すべきことはないので、そのまま保存します。

[11]フローを実行する

 以上の手順を終えたら、フローを保存して実行します。フォルダが作成されて、PDFからテーブルが抽出されたExcelブックが作成されます(PDFからテーブルの抽出は意図通りにならない場合もあります)。

図:PDFからテーブルを抽出するフローの実行結果
図:PDFからテーブルを抽出するフローの実行結果

まとめ

 Power Automate for Desktopのフローから、PDF形式のファイルを読み込んで、データを抽出するアクションを説明しました。

 PDFからデータを抽出するアクションは、日々更新されるPDFから、データを読み込んで集計して分析するフローでの利用が考えられます。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Power Automate Desktopチュートリアル連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 飯島 聡(WINGSプロジェクト イイジマ サトシ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16140 2022/07/26 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング