【PowerAutomate】ExcelファイルをPDFファイルに自動変換する方法
ほしコラム管理人の「ほし」です。
今回は、PowerAutomateでExcelをPDFに自動変換する方法について解説していきます。
プロジェクト要員人数分のExcelをPDFに変換しなきゃいけない〜
SharePoint上のExcelをPDFに変換するのが手間になっている
ExcelファイルをPDFに自動変換したい
そんな方に、向けて業務効率化するための記事を作成しています。
はじめに
今回のフローは、PowerAutomateでテンプレートとしてあったものを流用して作成しました。
既存でWordからPDFに変換するフローはありましたが、
ExcelからPDFに変換するものはなかったので今回試してみました。
処理のイメージは以下のようになっています。
OneDriveとSharePoint上の2箇所でファイルが作成されてしまう状態になっています。
これを解消したい場合は、OneDriveの「ファイルの削除」を実行すれば問題ありません!
フローの実行結果
今回作成するフローの実行結果になります。
該当のSharePointにファイルを格納すると、SharePoint上にExcelファイルと同名のPDFファイルが作成されています!
フロー作成に必要な事前準備
フローの作成に入る前に事前に必要な作業が3つあります。
- SharePointに任意の2フォルダを作成する
- OneDrive(Business)に任意のフォルダを作成する
- Excelファイルを用意する。(※空データはNG)
これらを事前準備をすることでスムーズにフローの作成に入ることができます。
項番❶は、2フォルダ作成しておくことで ExcelとPDFファイルが分類しやすいのでオススメです!
PowerAutomate 処理全体フロー
PowerAutomateの全体フローは以下のようになっています。
作成する処理は、起動タイミングを除いて4つになります。
- ファイルが作成されたとき(プロパティ)→ フローの起動タイミング
- ファイルコンテンツの取得 → 作成されたファイルの情報を取得
- ファイルの作成 → SharePointに作成されたファイルのコピー
- ファイルの変換 → ExcelファイルをPDFファイルに変換
- ファイルの作成 → OneDriveでPDFに変換されたファイルのコピー
それぞれの処理の内容を、このあと説明していきます。
ファイルが作成されたとき(プロパティ)SharePoint
ここでは、フローが起動するのを検知するSharePointのフォルダを設定します。
設定する値は以下になります。
- サイトのアドレス : 任意のSharePointアドレスを記入してください (プルダウンから選択)
- ライブラリ名 : 基本的には「ドキュメント」になると思います(プルダウンから選択)
- フォルダー : ドキュメント内のフォルダを選択してください (プルダウンから選択)
ここで設定する内容次第でPDF化するExcelが変わってくるので気をつけてください!
ファイルコンテンツの取得 SharePoint
作成されたExcelの情報を取得するための処理です。
取得した情報をもとにPDFファイルを作成していくので必要不可欠です。
- サイトのアドレス : 「ファイルが作成されたとき(プロパティ)」と同じ値
- ファイル識別子 : 「ファイルが作成されたとき(プロパティ)」から取得した「識別子」
ファイルの作成 OneDirve
SharePointに作成されたファイルをコピーする方法として、「ファイルの作成」を使用します。
- フォルダーのパス:OneDrive上のパスをプルダウンから選択
- ファイル名 : 「ファイルが作成されたとき(プロパティ)」から取得した「拡張子付きのファイル名」
- ライブラリ名 : 「ファイルが作成されたとき(プロパティ)」から取得した「識別子」
ファイルの変換 OneDrive
ここでは、One DriveにコピーしてきたExcleファイルをPDFに変換していきます。
- ファイル : 「ファイルの作成」で生成された「ID」を指定する
- ターゲットの種類 : 「PDF」をプルダウンから選択する。JPGなど色々選択できます
この時点でOneDrvive上にSharePointからコピーしてきたExcelをPDFにすることができました。
保存先がOneDriveでも問題ないという方は、ここまでの処理で問題ありません!
ファイルの作成 SharePoint
OneDrive上に作成されたPDFファイルを、SharePoint上にコピーしていきます。
- サイトアドレス : 「ファイルが作成されたとき(プロパティ)」同じサイトアドレス
- フォルダのパス : 「ファイルが作成されたとき(プロパティ)」と異なるフォルダパス
- ファイル名: 「ファイルが作成されたとき(プロパティ)」から取得した「名前」
- ファイルコンテンツ: 「ファイルの変換」から取得した「名前」
フォルダのパスに、「ファイルが作成されたとき(プロパティ)」と同じフォルダパスにするとPDFを作成された時点で再度フローが実行されてしまいます。
ファイル名で選択している、「名前」は「拡張子付きのファイル名」とは異なるので注意してください!
最後に
最後まで読んでいただきありがとうございました。
SharePointにExcelを保存させるだけでPDFファイルを自動で作成する方法を紹介してきました。
本ブログでは、PowerAutomateでSharePoint,Teamsなど様々な場面で応用できる業務効率化する方法について紹介しています!
こんにちは。
このページを参考にしてSharePoint上にあるエクセルファイルをJPGやPDFへ変換していますが、
画像が見切れたり、取り込み範囲が広すぎたりして、安定した変換ができません。
Excelの変換する範囲を指定できる方法などがあれば、教えてもらえると助かります。
こんにちは
yukiさん
本サイトを参考にしてくださりありがとうございます。
Excelで変換する範囲を指定するには印刷範囲を設定するのが良いと思います。
Powerautomateの既存機能では難しいと思いますので、
officeScriptを使用して印刷範囲を設定するのが良いと思います。
必要であれば、お時間かかりますが記事にさせていただきます。
取り急ぎ、以下に参考資料を記載させていただきます。
参考資料:officescript
ほしさん
返信ありがとうございます。
早速参考にさせてもらいましたが、上手くスクリプトを組めませんでした。
記事にしてもらえると助かりますが、もう少し自分でも試してみます。
参考にさせていただいています。ありがとうございます。
初歩的な質問で恐縮ですが、日付を入れたセルがPDFではアメリカ式のMM/dd/yyyyで表示されます。
これをエクセルの元の書式(M月d日やMM/dd)で表示させたいのですが、方法がありましたらご教示お願いしたいです。
こんにちは
kameさん
本サイトを参考にしてくださりありがとうございます。
ご質問いただいた内容について、現状で答えを持ち合わおらず
調べるのに少しお時間いただければと思います。
調査結果、対処方法が見つからない場合もあるかもしれませんが
よろしくお願いします。
変換するときに、画像データの縦横比が崩れてしまうのですが。回避はできますか?
イートンさん
本サイトを参考にしてくださりありがとうございます。
印刷範囲を設定することで回避することができると思いますので試してみてください。