見出し画像

Power Automate for desktopで、Excelファイルの全シートをPDFにしてみたハナシ

プリンタをPDFにして、もくもくと名前を付けて保存するやり方です。
Microsoft LearnでVBScriptが公開されているので、VBScriptを使っても良ければそちらのやり方の方がスムーズです🙏
VBScript を使用して Excel を PDF に変換する

Power Automate for desktopには、「既定のプリンターを設定」という素敵アクションがあるので便利です🤤


【事前準備】

こんなExcelファイルを用意しました。

なんのこっちゃない、数字を並べただけのシート×5。

全シートを、シート名をファイル名にしてPDFで保存するフローを作ります✊✨

① 既定のプリンタをMicrosoft Print to PDFにする

使用するアクションは「既定のプリンターを設定」。

プリンター名は「Microsoft Print to PDF」を選択します。

② Excelを起動して、ワークシート情報を取得

PDFにしたいExcelファイルを起動します。
使用するアクションは「Excelの起動」。

ウィンドウを最大化します。
使用するアクションは「ウィンドウの状態の設定」。

ワークシートの数分PDFにする作業の繰り返しをしたいので、ワークシート情報を取得します。
使用するアクションは「すべてのExcelワークシートの取得」。

③ ワークシートの数分、PDFにして保存する

アクション「すべてのExcelワークシートの取得」で取得した、変数「SheetNames」分 繰り返しを行います。
使用するアクションは「For each」。

繰り返しの中で、変数「CurrentItem」の中にシート名が順番に入ります。

シートのを選択します。
使用するアクションは「アクティブなExcelワークシートの設定」。

この後キー送信を行うのですが、念のため1秒待機。
使用するアクションは「Wait」。

Excelのウィンドウに対して Ctrl+Pを押して、印刷画面を開きます。
使用するアクションは「キーの送信」。

安定性のために、「キー入力の間隔の遅延」を100ミリ秒にしておく。

印刷画面がちゃんと開いたのを確認。
使用するアクションは「ウィンドウ コンテンツを待機」。
「UI要素の追加」で、印刷ボタンの上でCtrl+左クリックします。

表示がされたことを確認できたので、印刷ボタンをクリック。
使用するアクションは「ウィンドウのUI要素をクリック」。
先ほどの印刷ボタンをリストから選択。

名前を付けて保存ウィンドウに、フルパスを入力。
使用するアクションは「ウィンドウ内のテキストフィールドに入力する」。
「UI要素の追加」で、ファイル名をCtrl+左クリック。

ファイル名にシート名を設定してみた。

保存ボタンをクリックする。
使用するアクションは「ウィンドウのUI要素をクリック」。
保存ボタンの上でCtrl+左クリック。

「印刷中」の表示が消えるのを待ちたいので、今回は単純に3秒待機。
使用するアクションは「Wait」。

繰り返しが終わったら、Excelファイルを閉じます。
使用するアクションは「Excelを閉じる」。

④ 実行してみる

はいっ、これで完成です✨ 全体のフローはこんな感じ!
あ、必要があれば最後にプリンタの設定を元に戻してくださいね😃

では実行(。・Α・)σポチッ

ファイル名にフルパス入力するところで謎の間があって どきどきしたけど…この通り!!

無事に全シートがPDFになりました~!👏✨

FILTER関数と合わせて使ってみたら、必要な情報だけのPDFができてよきですね🤭

⑤ 所感

先日、こんなツイートをしまして。

Power Automateの方が安定するのでPower Automateでやりたかったのだけど、そのものすばりのアクションがないみたいで、できなくはないけど工夫が必要そう…?
ならPower Automate for desktopならどうやるんだろ?と思って、試してみました😋

「すべてのExcelワークシートの取得」アクション、しびれましたわ🤤
やっぱりPower Automate for desktopは扱いやすいですね~😍

Windows11から標準搭載されているPower Automate for desktop。
みんながExcelくらい当たり前に使える世の中になったらいいな~🌠

事務員が少しの背伸びでできる効率化を目指す🌈✨ 自分の好きなものを、楽しく発信していきたいです! いただいたサポートは学習費にあてさせていただきます🥰