UiPath StudioX かんたんRPAレシピ集(No.6)複数のPowerPointファイルのPDF出力とPDF分割(vol.33)

2023.03.20

序章

皆さん、こんにちは!“UiPath StudioX かんたんRPAレシピ集のお時間です。
本記事では、お仕事でよくある身の回りの作業を簡単・スピーディーに自動化するため、自動化の事例と、StudioXによるワークフローの作り方を連載でご紹介しています。
本日のレシピでは、「複数のPowerPointのPDF出力とPDF分割」を紹介させていただきます。

UiPath StudioX レシピの概要

前回の記事では複数のExcelファイルをマージする方法をご紹介しましたが、今回はPowerPointPDF出力とPDFの分割をする方法についてご紹介します。
具体的には、下記のように複数のPowerPointを一つにマージしてPDF出力、またはPDFをページで分割するという作業を自動化しています。

図1

図2

StudioXで作成したワークフローの全体像は下記のとおりです。

図3

それでは、次にワークフロー作成の手順を解説していきます。

手順1. 動作選択(PDF出力/PDF分割)ダイアログの作成

まずは、ロボットが実行する動作を選択するための入力ダイアログを表示させます。
下記のとおり「入力ダイアログ」アクティビティを選択してください。

図4

#

プロパティ名

設定値

1

ダイアログのタイトル

入力ダイアログのウィンドウで表示されるタイトルを入力します。このレシピでは「動作選択」とします。

2

入力ラベル

ラベルメッセージを入力します。このレシピでは「動作させたいモードを選択してください。」とします。

3

入力の種類

入力の種類を選択します。このレシピでは「複数選択」を選びます。

4

入力オプション

入力の種類が「複数選択」のため、ここで選択肢を設定します。このレシピでは「複数ファイル(パワーポイント)PDF出力;PDFファイルの分割出力」とします。

5

入力した値

入力した値の保存先を設定します。右側の(+)ボタンをクリックすると変数を作成できるため、変数を作成し値の保存先を設定します。このレシピでは「動作選択の結果」とします。

上記の設定を行うと、以下のような入力ダイアログを表示できるようになります。

図5

次に、マージ対象のPowerPointや分割対象のPDFが保存されているフォルダーを参照するためのダイアログを表示させます。
下記のとおり「フォルダーを参照」アクティビティを選択してください。

図6

#

プロパティ名

設定値

1

選択したフォルダーパス

選択されたフォルダーパスの保存先を設定します。右側の(+)ボタンをクリックすると変数を作成できるため、変数を作成し値の保存先を設定します。このレシピでは「選択されたフォルダーパス」とします。

次に、「フォルダーを参照」アクティビティで「選択されたフォルダーパス」の情報を「Project_Notebook.ja」というExcelファイルに書き込みます。
「セルに書き込み」アクティビティを選択し、プロパティには下記のとおり設定してください。

図7

#

プロパティ名

設定値

1

書き込む内容

指定したセルに書き込む内容を入力します。このレシピでは「選択されたフォルダーパス」とします。

2

書き込む場所

書き込む対象のシートを選択します。

右側の(+)ボタンをクリックし、カスタム入力を選択します。ワークシート名は右側(+)ボタンをクリックし、「ノートブック」の「スクラッチパッド」を選択します。「セルのアドレス」は「A1」と入力します。

手順2.PowerPointPDF出力

まずは、動作選択の結果の値でロボットの動作を分岐させます。
下記のとおり「条件分岐」アクティビティを選択してください。

図8

条件については、右側(+)ボタンをクリックし、「条件ビルダー」から設定します。

図9

左辺には右側(+)ボタンをクリックし、「変数を使用」から「動作選択の結果」を選択します。
中央の条件式は「次の値で始まる」を選択します。
右辺には右側(+)ボタンをクリックし、「テキスト」を選択、「複数ファイル」と入力します。

次に、条件式のThenを設定していきます。
これは「動作選択の結果」が「複数ファイル(パワーポイント)PDF出力」だった場合の動作となります。

まずは、マージ用のPowerPointファイルを保存するため、下記のとおり「変数の値を設定」アクティビティを選択してください。(「後のために保存」と名称が変更されておりますが、「変数の値を設定」アクティビティです。)
保存先は右側(+)ボタンをクリックし、「変数を作成」から「マージ用パワーポイントファイル」と入力してください。
「保持する値」は右側(+)ボタンをクリックし、「ノートブック」の「カスタム入力」を選択します。ワークシート名は「スクラッチパッド」、セルのアドレスは「A2」と設定してください。

図10

次に、ページ数初期化のため、下記のとおり「変数の値を設定」アクティビティを選択してください。
先程と同様に「挿入ページ数」という変数を作成し、「保持する値」に「1」と設定してください。

図11

次に、指定したフォルダー内のファイルを一つずつ処理していきます。
「繰り返し(フォルダー内の各ファイル)」アクティビティを選択し、プロパティには下記のとおり設定してください。

図12

#

プロパティ名

設定値

1

繰り返し

後続のアクティビティで参照する名称を入力します。このレシピでは「ファイルパス」とします。

2

フォルダー

処理対象のフォルダーを選択します。フォルダー参照で設定した「選択されたフォルダーパス」を使用します。

3

フィルター条件

 

処理対象のファイルの条件を設定します。このレシピでは「*.pptx」とします。

4

並べ替え順

ファイルを処理する順番を設定します。このレシピでは「名前(昇順)」を選択します。

次に、マージ先のPowerPointファイルを開きます。
PowerPointプレゼンテーションを使用」アクティビティを選択し、プロパティには下記のとおり設定してください。

図13

#

プロパティ名

設定値

1

PowerPointファイル

指定のPowerPointファイルの場所を入力します。

2

参照名

後続のアクティビティで参照するための名称を入力します。このレシピでは「tmpPowerPoint」とします。

3

変更を保存

チェックを入れます。

次に、マージ元のPowerPointファイルを開きます。
PowerPointプレゼンテーションを使用」アクティビティを選択し、プロパティには下記のとおり設定してください。

図14

#

プロパティ名

設定値

1

PowerPointファイル

指定のPowerPointファイルの場所を入力します。

2

参照名

後続のアクティビティで参照するための名称を入力します。このレシピでは「PowerPoint」とします。

3

変更を保存

チェックを入れます。

次に、指定したPowerPointのページの数だけ処理していきます。
「繰り返し(指定回数)」アクティビティを選択し、プロパティには下記のとおり設定してください。

図15

#

プロパティ名

設定値

1

繰り返し

後続のアクティビティで参照する名称を入力します。このレシピでは「ページ」とします。

2

繰り返し(指定回数)

繰り返し回数を設定します。このレシピでは「PowerPoint.Slide.Count」とします。

次に、マージ先のPowerPointにページをコピーします。
「スライドをコピー/貼り付け」アクティビティを選択し、プロパティには下記のとおり設定してください。

図16

#

プロパティ名

設定値

1

ソースのプレゼンテーション

PowerPoint」を設定してください。

2

コピーするスライド

現在処理しているページを選択するため、「ページ」を選択してください。

3

コピー先プレゼンテーション

tmpPowerPoint」を設定してください。

4

挿入場所

挿入場所には、何ページ目にスライドを挿入するか指定することができます。

「挿入ページ数」を設定してください。これは「変数の値を設定」アクティビティに設定した保存先名です。つまり最初は1という値が保持されているため、1ページ目としてスライドが挿入されます。

次に、マージ先の挿入ページ数カウントアップのため、下記のとおり「変数の値を設定」アクティビティを選択してください。
今回挿入した場所の次のページにマージ元のスライドを挿入したいため、「保存する値」に「挿入ページ +1」と設定してください。

図17

全てのPowerPointファイルのマージが完了したら、再度マージ先のPowerPointファイルを開きます。
PowerPointプレゼンテーションを使用」アクティビティを選択し、プロパティには下記のとおり設定してください。

図18

#

プロパティ名

設定値

1

PowerPointファイル

指定のPowerPointファイルの場所を入力します。

2

参照名

後続のアクティビティで参照するための名称を入力します。このレシピでは「tmpPowerPoint」とします。

3

変更を保存

チェックを入れます。

次に、マージ済みのPowerPointファイルをPDFで保存します。
「プレゼンテーションをPDFとして保存」アクティビティを選択し、プロパティには下記のとおり設定してください。

図19

#

プロパティ名

設定値

1

プレゼンテーション

tmpPowerPoint」を設定してください。

2

ファイルパス

PDFとして保存するパスを設定します。このレシピでは「ノートブック」の「スクラッチパッド」シート、「A3」セルを設定します。

3

既存のファイルを置き換える

チェックします。

手順3.PowerPointPDF分割

次に、条件式のElseを設定していきます。
これは「動作選択の結果」が「PDFファイルの分割出力」の場合の動作となります。

まずは、Thenの時と同様に、指定したフォルダー内のファイルを一つずつ処理していきます。
「繰り返し(フォルダー内の各ファイル)」アクティビティを選択し、プロパティには下記のとおり設定してください。

図20

#

プロパティ名

設定値

1

繰り返し

後続のアクティビティで参照する名称を入力します。このレシピでは「ファイルパス」とします。

2

フォルダー

処理対象のフォルダーを選択します。フォルダー参照で設定した「選択されたフォルダーパス」を使用します。

3

フィルター条件

 

処理対象のファイルの条件を設定します。このレシピでは「*.pdf」とします。

4

並べ替え順

ファイルを処理する順番を設定します。このレシピでは「名前(昇順)」を選択します。

次に、PDFのページ数を取得します。
PDFのページ数を取得」アクティビティを選択します。

図21

右側(+)ボタンをクリックし、「ファイルパス」を選択、「完全名(フルパスを含む)」を設定します。
また、取得したページ数を保存するため、アクティビティのプロパティの右側(+)ボタンをクリックし、変数を作成します。変数名は「PDFのページ数」とします。

図22

次に、指定したPDFのページの数だけ処理していきます。
「繰り返し(指定回数)」アクティビティを選択し、プロパティには下記のとおり設定してください。

図23

#

プロパティ名

設定値

1

繰り返し

後続のアクティビティで参照する名称を入力します。このレシピでは「CurrentItem」とします。

2

繰り返し(指定回数)

繰り返し回数を設定します。「PDFのページ数を取得」アクティビティで保存した変数「PDFのページ数」を使用します。

次に、ページを分割して出力します。
PDFのページ範囲を抽出」アクティビティを選択します。

図24

上部には分割元のPDFのファイルパスを設定します。
右側(+)ボタンをクリックし、「ファイルパス」を選択、「完全名(フルパスを含む)」を設定してください。
下部には出力先のPDFのファイルパスを設定します。
右側(+)ボタンをクリックし、「詳細エディター」を選択し、「String.Format(“{0}\{1}”,Path.GetDirectoryName(ファイルパス.FullName), Path.GetFileNameWithoutExtension(ファイルパス.Name) + “_” + CurrentItem.ToString + “.pdf”)」と入力します。

図25

まとめ

ワークフロー作成の手順は以上です。完成したワークフローを再度掲載します。

図26

このワークフローを実行していただくと、複数のPowerPointPDF出力とPDF分割作業を自動化することができます。
これでもう手動で、複数のPowerPointPDF出力やPDF分割作業が不要になりますね。

今回のレシピでは、StudioXを使って「複数のPowerPointPDF出力とPDF分割」を紹介させていただきました。
StudioXは、本日ご紹介した以外にも様々なOffice製品の自動化が出来ます。今後もOffice製品を自動化する色々なレシピをご紹介させていただきます。

本日のレシピは以上です。
それでは次回もお楽しみに。

 

弊社ではRPAの推進と活用をもう一度はじめたい方に参考になる資料「今こそ言える、RPA成功への近道 ~推進と活用の2軸から‘もう一度’はじめましょう!~」をご用意しております。本資料は、RPA導入や再活用に向けて必見の資料です。ぜひダウンロードいただき、ご覧ください。