Q&A

回答の並べ替え:
投稿新規に質問を投稿する

PDF作成の自動化

zoe7010 zoe7010

2019-08-08 12:11

こんにちは。

早速ですが、PDFの作成をRPAオプションを使って自動化したいと考えております。

シート「現在のシートを印刷する」アクションをののち、
①操作対象から印刷のアイコンを選択(画像から選択)
②プリンタの選択でPDFを選択
(自動化は難しそうなので、選択してもらうようにします。
選択完了後、③のアクションが動くようにしないといけませんね、、、)
参考:https://partners.celf.jp/celf-help/ja/texts/faq/technical/faq000164.html
([FAQ000164]CELFのシートをPDFファイルとしてエクスポートする方法はありますか?)
③印刷ボタンを選択後、シートからセルの値をコピーして、ファイル名として保存
という流れを考えておりました。

しかし、印刷アクションが終了後(印刷プレビュー画面を閉じるもしくは、印刷ボタンを押下したあと)に
次のアクションに推移するため、画像が見つからないといったエラーになってしまいます。

もし、このようなことをRPAオプション等で自動化されている方がいらっしゃいましたら、ご教授いただけますと幸いです。

zoe7010 zoe7010
アクション画面となります。

色々試行錯誤してみました。

これで正解ではないと思いますが、
一旦は、この方法でやろうかな、と考えています。

もう少し考えてみますが
メモとして、書かせていただきます。

①Excelに保存したのち、保存したExcelを開く。
②Excelのショートカットキーを用いて、印刷画面を開く
③プリンターの選択画面を開く
(リストから選ぶことができなかったので、ここは手動で選択します)
④CELFのアプリを最前面にする。
⑤問い合わせ画面をポップアップで表示させ、OKをクリックしたら
 非表示セルにOKを表示させる。
⑥上記でOKが入力されていれば、Excel画面を最前面にし、印刷のアイコンをクリック
⑦別のシートでタイトルになる文字列ををクリップボードにコピーする
 アクションを行っているので、貼り付けて、任意のファイルパスに保存をする。
(ここは13秒で完了する予定)
⑧PDFのイメージが表示されるので、閉じる。(手動)
⑨アクションで開いたExcelを閉じる。

かなり、環境に左右されてしまいそうですが、テスト実行してみて、
特に問題はなくできそうなので、このアクションを活用してみたいと思います。
zoe7010 zoe7010
> rnts さん

色々試していただいたとのことありがとうございます。

私も試行錯誤してみたのですが、「CELF画面の操作ができない」および
「印刷のアクションが終わらない限り、次のアクションに進まない」ため、諦めていました。

Excelに出力後、PDFというのは思いつかなかったので、大変勉強になりました。
ありがとうございます!

> kurata さん

CELFでCELF上の画面を操作できないことをすっかり忘れていました。
以前、こちらのコミュニティでもありましたね、、、

マクロを使っての自動化はマクロの知識がないため、考えていませんでした、、、
ですので、マクロ文章の画像大変助かります。
保存先などは変えて、勉強しながら取り組んでみたいと思います。

> rnts さん
> kurata さん

繁忙期になると、500~600枚のPDFを作成しなければならないので
自動化出来たら、嬉しいなと思ったのですが、私の力不足でできず、諦めていたので、大変助かりました。

命名規則など考えながら、少しでも自動化できるように取り組んでみます!
kurata kurata
メダルベストアンサー
CELFのアクションセット。シートをExcelに保存したら、作業用のマクロの入ったExcelファイル「ExlToPDF.xlsm」を起動します。
「ExlToPDF.xlsm」に記述するマクロ。ファイルを開いたときにこのマクロが実行されるようにPrivate Sub Workbook_Open()で設定しておきます。
先に rnts様が書いておられるように、CELFでCELFを操作するのはできないっぽいです。
「RPAを使って、CELFの利用者画面や管理画面を操作することはできません。」
https://cloud.celf.jp/celf-rpa-tips/docs/chapter01.html#_Toc5106134

それで、こういう仕掛けを作ってみました。
・シートをExcelに保存する。保存先は決めておいたフォルダに置くことにする。
 (例だとデスクトップに「Test」というフォルダを作成し、そこへ「test01.xlsx」という名前で保存することにしています)
・保存したファイルを開いてPDFで保存するマクロを書いてあるExcelファイルを起動する。
 (例だとデスクトップに「ExlToPDF.xlsm」という名前で作ってあります)

このアクションセットを実行すると、シートが保存され、同じ場所にPDFファイルができます。
Excelなら、別に印刷機能でなくても普通にPDF形式で保存することができますので、記述するマクロもこの程度で済みます。


こういうのだと自動化の助けになりますでしょうか?
ファイルの名前や保存場所は固定で書いてしまっているので、もしお使いいただけるときはご自分のお使いになるように変えてください。
変換したファイルはもういらないから削除するとか移動するとかも必要に応じて足したりしてください。
保存フォルダにExcel以外のファイルが入っていたらとか、そこらへんは全然考慮していません。
rnts rnts
いろいろ試してみましたが、RPAではCELFの画面やダイアログを操作出来ないようです。
(文字の貼付けやキーのタイプが動作しませんでした)

また、印刷アクションのダイアログが表示されている間はアクションセットの処理が止まっていて、
印刷するか、キャンセルしてダイアログを閉じないと、以降の処理(3秒待機する)が実行されません。


コマンドを使用して既定のプリンタを"Microsoft Print to PDF"にし、
印刷プレビューを表示せずに直接出力できないか試してみましたが、
名前を付けて保存することが出来ず、実現できませんでした。


かなり手間になってしまいますが、一度Excelファイルとして出力、開いてから、
"Microsoft Print to PDF"に印刷する必要がありそうです。