Power Automate Desktop

Power Automate Desktop・Excelをシートごとに分割してPDF保存する

Power Automate Desktop

Power Automate Desktopを使用して、Excelのワークシートをシートごとに分割してPDF保存する方法を解説します。

作成時間は5分です。

U-ROOm
U-ROOm

それではいってみましょう~。

Excelをシートごとに分割してPDF保存するロボットの概要

 

今回のロボットは、

複数のワークシートを持つExcelファイルから、

シートごとに分割したPDFファイルを作成するロボットです。

完成したロボットの動作はこちらの動画で確認できます。

Excelをシートごとに分割してPDF保存するロボットの作成手順

 

作成工程は全6工程です。

  1. Excelの起動
  2. すべてのExcelワークシートの取得
  3. ループ処理
  4. アクティブなExcelワークシートの設定
  5. アクティブなExcelワークシートの取得
  6. ExcelをPDF変換(VBScript使用)
U-ROOm
U-ROOm

①から順番に組み立てていきます!

作成工程① Excelの起動

PADのアクションから、「Excelの起動」を選択しフローにドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、設定します。

  • Excelの起動 → 「次のドキュメントを開く」を選択
  • ドキュメントパス → 開きたいファイルパスを記載

保存を押すと、変数「ExcelInstance」が生成されます。

 

作成工程② すべてのExcelワークシートの取得

作成工程①で起動したExcelファイルのすべてのワークシートをPADに読み込みます。

PADのアクションから、「すべてのExcelワークシートの取得」を選択しフローにドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、設定します。

  • Excelインスタンス → 作成工程①で生成された変数「ExcelInstance」を選択(選択すると自動で%が設定されます)

保存を押すと、変数「SheetNames」が生成されます。

 

ここまででPADを実行し、フロー変数から変数SheetNamesをクリックすると変数の値が確認できます。

変数SheetNamesには、すべてのワークシートの名前が格納されています。

 

作成工程③ ループ処理

Excelワークシートの数は14個あるので、14回同じ処理を繰り返すためにループ処理を設定します。

PADのアクションから、「For Each」を選択しフローにドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、設定します。

  • 反復処理を行う値 → 作成工程②で生成された変数「SheetNames」を選択(選択すると自動で%が設定されます)

保存を押すと、変数「CurrentItem」が生成されます。

変数「SheetNames」はワークシートの集合体で、変数「CurrentItem」はワークシートの中から取り出されたファイルが1つ格納されます。

 

作成工程④ アクティブなExcelワークシートの設定

Excelワークシートが複数あるので、処理を行いたいExcelワークシートをアクティブな状態(=選択された状態)にしておく必要があります

PADのアクションから、「アクティブなExcelワークシートの設定」を選択し、ForEachとEndの間にドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、設定します。

  • Excelインスタンス → プルダウンより「ExcelInstance」を選択
  • 次とともにワークシートをアクティブ化 → プルダウンより「名前」を選択
  • ワークシート名 → 変数「CurrentItem」を設定(選択すると自動で%が設定されます)

ForEachループアクションの中に入れることで、ワークシート名の「CurrentItem」はワークシート数だけ入れ替わります。

 

作成工程⑤ アクティブなExcelワークシートの取得

作成工程⑥でワークシートをアクティブ化したら、アクティブなワークシートのインデックスを取得します。(インデックスは後の工程VBscriptコードで使用します。)

PADのアクションから、「アクティブなExcelワークシートの取得」を選択し、ForEachとEndの間にドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、設定します。

  • Excelインスタンス → プルダウンより「ExcelInstance」を選択

保存を押すと、変数「ActiveSheetNames」と「SheetIndex」が生成されます。

U-ROOm
U-ROOm

2つの変数が生成されますが、今回使用する変数は「SheetIndex」のみです。

作成工程⑥ ExcelをPDF変換(VBscript使用)

VBscriptアクションを使ってExcelをPDFに変換します。

まずは、公式ドキュメントに沿って、変数を2つ用意します。

⑥-1 Excelファイルを格納する変数の設定

PDFに変換したいExcelファイルを格納する変数を用意します。

PADのアクションから、「Set variable」を選択しForEachとEndの間にドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、設定します。

  • 宛先 → PDFに変換したいExcelファイルのパスを入力

保存を押すと、PDFに変換したいExcelファイルのパスを示す変数「ExcelFile」が生成されます。

 

⑥-2 PDF変換されたファイルを格納する変数の設定

PDF変換されたファイルを格納する変数を用意します。

PADのアクションから、「Set variable」を選択しForEachとEndの間にドラッグ&ドロップで移動します。

移動すると、「パラメーター選択」画面が開くので、設定します。

  • 宛先 → 変換されてできたPDFファイルのパスを入力
U-ROOm
U-ROOm

ファイル名が変数CurrentItemが含まれているのがポイントです!

保存を押すと、PDFファイルのパスを示す変数「PdfFile」が生成されます。

設定した2つの変数「ExcelFile」と「PdfFile」は、VBscriptで使用します。

 

⑥-3 VBscriptの実行

変数の準備ができたら、PADのアクションから「VBscriptの実行」を選択しForEachとEndの間にドラッグ&ドロップで移動します。

 

移動すると、「パラメーター選択」画面が開くので、コードを貼り付けます。

貼り付けるコードは、以下になります。

Dim Excel
Dim ExcelDoc

'Opens the Excel file'
Set Excel = CreateObject("Excel.Application")
Set ExcelDoc = Excel.Workbooks.open("%ExcelFile%")

'Creates the pdf file'
Excel.WorkSheets(%SheetIndex%).ExportAsFixedFormat 0, "%PdfFile%" ,0, 1, 0,,,0

'Closes the Excel file'
Excel.ActiveWorkbook.Close
Excel.Application.Quit

コードを貼り付たら、保存を押して閉じます。

以上でフローが完成です。

U-ROOm
U-ROOm

完成したフローを実行して動作確認を行ってみましょう~。

完成したフロー

まとめ

 

以上、「Power Automate Desktop・Excelをシートごとに分割してPDF保存する」をお送りしました。

U-ROOm
U-ROOm

Power Automate Desktop!ぜひお試しあれ~。

この記事を書いた人
U-ROOm

システム開発会社にて、バックオフィス全般を担当する会社員です。

U-ROOmをフォローする
スポンサーリンク
シェアする
U-ROOmをフォローする
ゆるむ U-ROOm
タイトルとURLをコピーしました