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

それではいってみましょう~。
Excelをシートごとに分割してPDF保存するロボットの概要
今回のロボットは、
複数のワークシートを持つExcelファイルから、
シートごとに分割したPDFファイルを作成するロボットです。
完成したロボットの動作はこちらの動画で確認できます。
Excelをシートごとに分割してPDF保存するロボットの作成手順
作成工程は全6工程です。
- Excelの起動
- すべてのExcelワークシートの取得
- ループ処理
- アクティブなExcelワークシートの設定
- アクティブなExcelワークシートの取得
- ExcelをPDF変換(VBScript使用)

①から順番に組み立てていきます!
作成工程① 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」が生成されます。

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ファイルのパスを入力

ファイル名が変数CurrentItemが含まれているのがポイントです!
保存を押すと、PDFファイルのパスを示す変数「PdfFile」が生成されます。
⑥-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
コードを貼り付たら、保存を押して閉じます。
以上でフローが完成です。

完成したフローを実行して動作確認を行ってみましょう~。
完成したフロー
まとめ
以上、「Power Automate Desktop・Excelをシートごとに分割してPDF保存する」をお送りしました。

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