【RPA】UiPath Invoke CodeでExcel/Word/PowerPointをPDF変換する

#RPA #UiPath #DX #ビジネス #ソフトウェア

RPAツールであるUiPathでは、
GUIによってアクティビティと呼ばれる処理の部品を選択して貼り付けることで、
パソコンで行うための一連の動作を組み立てることができます。

各処理ではVisualBasic言語(VB.NET)によって、原則、1行だけのコードを書く(プログラミング)ことができます、。
それだけでは収まらない処理は「コードを呼び出し(Invoke Code)」というアクティビティによって、
複数行のコードをプログラミングすることができます。

Invoke Codeアクティビティは、原則、一つのVB.NETのSUB関数としての機能でしかなく、
一つの関数を作るようなイメージです。
(Invoke Codeアクティビティ内で複数の関数を定義することは現状ではできません)

今回は、Invoke Codeアクティビティによって、
Excel/Word/PowerPointをPDF変換するコードを作成しました。

※実行するPCにExcel/Word/PowerPointがインストールされている必要があります。
 (Excel/Word/PowerPointのCOMコンポーネント(タイプライブラリ)が使える状態であることが必要です)


■Invoke CodeでExcel/Word/PowerPointのどれかを判断する

ファイルの拡張子によって、Excel/Word/PowerPointのどれかを判断する。

Invoke Codeアクティビティの引数を定義します。

 In_File String 入力:ファイル
 Out_PdfFile String 入力:種別(EXCEL or WORD or PPT)

画像1

Excel/Word/PowerPointのどれかを判断するするInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①ファイル名から拡張子を取得
②拡張子が"xlsx"または"xls"の場合、種別に"EXCEL"を返却
 拡張子が"docx"または"doc"の場合、種別に"WORD"を返却
 拡張子が"pptx"または"ppt"の場合、種別に"PPT"を返却

画像2


■Invoke CodeでExcelをPDF変換をする

ExcelファイルをPDFに変換します。

Invoke Codeアクティビティの引数を定義します。

 In_ExcelFile String 入力:Excelファイル
 In_PdfFile String 入力:Pdfファイル
 Out_Result Boolean 出力:結果(True/False)
Out_ErrorMessage String 出力:エラーメッセージ

画像3


ExcelファイルをPDFに変換するInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①入力引数のチェック
②フルパスに変換
③Excelアプリケーションのインスタンスを生成
④Excelブックのオープン
⑤PDF変換保存
⑥Excelブックのクローズ処理をする
⑦Excelアプリケーションのクローズ処理をする
⑩正常であれば、Out_ResultにTrue、Out_ErrorMessageに空文字("")を設定して終了する
 異常(例外発生)であれば、Out_ResultにFalse、Out_ErrorMessageにエラーメッセージ(例外メッセージ)を設定して終了する

画像4


■Invoke CodeでWordをPDF変換をする

WordファイルをPDFに変換します。

Invoke Codeアクティビティの引数を定義します。

 In_WordFile String 入力:Wordファイル
 In_PdfFile String 入力:Pdfファイル
 Out_Result Boolean 出力:結果(True/False)
Out_ErrorMessage String 出力:エラーメッセージ

画像5

WordファイルをPDFに変換するInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①入力引数のチェック
②フルパスに変換
③Wordアプリケーションのインスタンスを生成
④Wordブックのオープン
⑤PDF変換保存
⑥文書のクローズ処理をする
⑦Wordアプリケーションのクローズ処理をする
⑨正常であれば、Out_ResultにTrue、Out_ErrorMessageに空文字("")を設定して終了する
 異常(例外発生)であれば、Out_ResultにFalse、Out_ErrorMessageにエラーメッセージ(例外メッセージ)を設定して終了する

画像6


■Invoke CodeでPowerPointをPDF変換をする

PowerPointファイルをPDFに変換します。

Invoke Codeアクティビティの引数を定義します。

 In_PowerPointFile String 入力:PowerPointファイル
 In_PdfFile String 入力:Pdfファイル
 Out_Result Boolean 出力:結果(True/False)
Out_ErrorMessage String 出力:エラーメッセージ

画像7

PowerPointファイルをPDFに変換するInvoke CodeアクティビティのVB.NETコードは、
以下の処理を実施します。

①入力引数のチェック
②フルパスに変換
③PowerPointアプリケーションのインスタンスを生成
④プレゼンテーションのオープン
⑤PDF変換保存
⑥プレゼンテーションのクローズ処理をする
⑦PowerPointアプリケーションのクローズ処理をする
⑨正常であれば、Out_ResultにTrue、Out_ErrorMessageに空文字("")を設定して終了する
 異常(例外発生)であれば、Out_ResultにFalse、Out_ErrorMessageにエラーメッセージ(例外メッセージ)を設定して終了する

画像8


◇シーケンスを作成するための準備
・UiPathのパッケージ管理から以下のパッケージをインストールします。

画像9


■UiPathでExcel/Word/PowerPointをPDF変換するシーケンスの作成

画像12

以下の手順でシーケンスを作成します。

①UiPathのプロジェクトを作成
②UiPathのシーケンスを作成
③UiPathの画面から以下をインポート

画像10

④以下の変数を定義する

 File String Excel/Word/PowerPointファイル
 Kind String 種別
 PdfFile String Pdfファイル
 Result Boolean 結果(True/False)
ErrorMessage String エラーメッセージ

画像11


⑤代入アクティビティを追加し、File変数にExcel/Word/PowerPointファイルを設定する

⑥Invoke Codeアクティビティを追加し、
 コード編集でExcel/Word/PowerPointのどれかを判断するコードを設定する

⑦条件分岐アクティビティを追加する
種別(Kind)が"EXCEL"の場合、Invoke Codeアクティビティを追加し
 コード編集でExcelをPDF変換をするコードを設定する

⑧条件分岐アクティビティを追加する
種別(Kind)が"WORD"の場合、Invoke Codeアクティビティを追加し
 コード編集でWordをPDF変換をするコードを設定する

⑨条件分岐アクティビティを追加する
種別(Kind)が"PPT"の場合、Invoke Codeアクティビティを追加し
 コード編集でPowerPointをPDF変換をするコードを設定する

⑩実行する

※本記事のサンプルコードに関しては、一切の責任を負いません。
 すべて自己責任でお願いいたします。


■上記のサンプルコードプロジェクトを提供します(著作権フリー)


①UiPathプロジェクト(UiPathPrj_InvokeCode_ConvertPDF)

 以下のサンプルシーケンスを準備しました。

  Excel/Word/PowerPointファイルをPDFに変換するシーケンス

 ※UiPath Community Editionで作成
  (UiPath Studio Pro 2020.10.0 Community License)

②VBコンソールアプリケーションプロジェクト(VBPrj_InvokeCode_ConvertPDF)

 Invoke Codeアクティビティ内でデバックすることは困難なので、
 一度、VBコンソールアプリケーションとしてプログラミングし、
 デバックをしてからコピー&ペーストしたほうが効率的です。

 そのため、Invoke Codeアクティビティで動かす同じコードを
 VBプロジェクトから動作させるようにしてあります。

 ※Microsoft Visual Studio Community 2019 Version 16.7.6で作成
 (Microsoft.NET Framework Version 4.8.03752)


以下からサンプルコードをダウンロードすることが可能です。

ここから先は

24字 / 1ファイル

¥ 100

この記事が気に入ったらサポートをしてみませんか?