今回はExcelで作成したデータをPower Automate Desktop(パワーオートメイトデスクトップ)に取り込み、PDFに転記する方法をご紹介します。
使用方法の例として、従業員を雇用したときにハローワークに提出する、雇用保険被保険者資格取得届を作成します。
Excelで作成した雇用保険被保険者資格取得届の一覧表をPower Automate Desktopを使用して、人数分自動で雇用保険被保険者資格取得届のPDFファイルに転記して保存します。
○簡単に流れを説明します。
1.まずハローワークから雇用保険被保険者資格取得届のPDFファイルをダウンロードします。
2.次に雇用保険被保険者資格取得届に記載する項目をExcelで人数分入力します。
3.Power Automate Desktopに、Excelファイルの内容を取り込み、PDFファイルに転記します。
下記が転記後のPDFファイルです。
出典:ハローワーク
フローの完成形
1.ハローワークから雇用保険被保険者資格取得届のPDFをダウンロード
雇用保険被保険者資格取得届のPDFが必要なので、ハローワークのサイトからダウンロードします。
今回はデスクトップに雇用保険被保険者資格取得届の名前のフォルダを作り、そこに保存します。
フォルダ名やファイル名は後にPower Automate Desktopで使用します。
ハローワークのリンク先を載せました。リンク先:雇用保険被保険者資格取得届
2.Excelで雇用保険被保険者資格取得届一覧表を作成
雇用保険被保険者資格取得届に必要な項目をExcelに入力します。
今回はデスクトップに雇用保険被保険者資格取得届の名前のフォルダを作り、そこに「2022.4.1雇用保険被保険者資格取得届一覧表」の名前で保存しました。
フォルダ名やファイル名は後にPower Automate Desktopで使用します。
入力した項目をPower Automate Desktopに取り込みます。
※注意点
・先頭行(1行目のセルA1からY1)は後で列名として使用します。
・列名に1.などの.(ピリオド)を使用するとPower Automate Desktopにうまく転記されません。
・0を最初に入力する時は0の前に‘(アポストロフィ)を入力すると、01などの0が入力されます。
3.Power Automate Desktopを起動
1.Power Automate Desktopを起動し、「+新しいフロー」を作成します。
2.フローの内容が解かるように、フロー名を入力します。
3.フロー名を入力したら、下にある「作成」をクリックします。
新しいフローが作成されます。
4.現在の日時を取得
最初に、後でPDFファイルを保存する時に、ファイル名に現在の日時を設定したいので、「現在の日時を取得」のアクションをMainに設置します。
1.左のアクションから「日時」をダブルクリックします。
隠れていた「現在の日時を取得します」が表示されるので、「現在の日時を取得します」をダブルクリックするか、ドラッグして真ん中の「Main」の空白のところに持っていき、離すとアクションが追加されます。
2.次に画面に「現在の日時を取得します」の設定画面が表示されます。
取得:「現在の日時」
タイムゾーン:「システムタイムゾーン」
生成された変数「CurrentDateTime」が生成されました。
※変数とは文字や数値などのデータを一時的に、保管できる箱のようなものです。
今日の日時や明日の日時など、数値が変わる状況で、今の日時を使いたい場合に
変数名を使うことで、その時の日時を箱から自由に取り出せます。
変数には色々な型がありますが、Power Automate Desktopでは自動的に決められます。
日時はDatetime型に自動的に決定されます。
5.特別なフォルダーを取得
次にデータを開く時に、デスクトップ環境がユーザー毎に違うので、特別なフォルダーを取得でユーザーに合わせたパス(ファイルの保存場所)を取得します。
1.アクションのフォルダーから特別なフォルダーを取得をダブルクリックするか「1.現在の日時を取得します」の下にドラッグします。
※特別なフォルダーを取得の詳しい説明は別の記事に掲載しております。該当記事はこちら
※順番通りにアクションが実行されますので、アクションをワークスペースに配置する際に、順番通りに配置します。
6.Excelデータの読み込み
次に先ほど作成したExcelファイルの2022.4.1雇用保険被保険者資格取得届一覧表のデータをPower Automate Desktopに読み込みます。
※別の記事にExcelデータの読み込方法の詳しい説明を掲載しておりますので、記事を参考にアクションの設定を行います。該当記事はこちら
7.実行テスト
ここまでで一度、フローの実行を行い、フロー変数にデータが格納されるか確認を行います。
1.上にある「▷実行」をクリックするか、メニューにあるデバッグの▷実行をクリックして、フローの実行を行います。
フローが実行されたら、画面右側のフロー変数の場所に、アクションで生成された変数の中にデータが格納されました。
CurrentDateTime:2022/4/1 10:20:50 などのフローを実行した日時が入ります。
ExcelData:EXCELファイルから読み取ったデータが格納されています。
ExcelInstance:EXCELインスタンが入ります。
FirstFreeColumn:空白列を取ってきます。
FirstFreeRow:空白行を取ってきます。
SpecialFolderPath:特別なフォルダーを取得します。
上記の各フロー変数の青文字の名前の所をダブルクリックすることで、中身が確認できます。
試しに{☓}ExcelDateをダブルクリックして中身を確認してみます。
Excelワークシートから読み取りで読み取ったデータが格納されています。
・詳細をクリックして、列名を指定できるように「範囲の最初に列名が含まれています」にチェックを入れたので、#の行に列名が表示されています。
※注意点としてPower Automate DesktopはExcelと違い、最初の番号が0から始まります。
確認が終わったら「閉じる」をクリックします。
8.ExcelデータをPDFに貼り付ける
Excelで作成した雇用保険被保険者資格取得届の一覧表をPower Automate Desktopの変数に格納されていますので、そのデータを人数分自動でPDFに貼り付けて保存する処理を行います。
8-1.Loop
Loop処理を実行して人数分の雇用保険被保険者資格取得届のPDFを作成します。
一人ならLoop処理を使用しなくてもいいのですが、2人以上の場合は、最初に戻って同じ処理を繰り返して、人数分PDFの作成を行います。
1.アクションのループで「Loop」をダブルクリックするか、「Excelを閉じる」の下にドラッグして、ワークスペースに追加します。
2.Loopの設定画面が表示されたら、下記の内容を入力します。
・開始値:「0」と入力します。
※Power Automate DesktopはExcelと違い、最初の番号が0から始まります。
・終了:「%ExcelData.RowsCount – 1%」を直接入力するか、右にある{☓}をクリックして、ExcelDataの.RowaCountをダブルクリックして-1を追加します。
※ExcelData.RowsCountとはExcelデータの行数が格納されています。
-1にするのは、0から始まるため、行数が2の場合、012と3回繰り返してしまうので、1行減らします。
・増分:「1」と入力します。
Excelデータを1行ずつ処理したいので、1行終わったら、次の行に移動するため1を入力します。
8-2.アプリケーションの実行
アプリケーションの実行でPDFファイルを開きます。
1.アクションのシステムで「▷アプリケーションの実行」をLoopとEndの間に、ドラッグして、ワークスペースに追加します。
2.「アプリケーションの実行」のパラメータを選択します。
・アプリケーションパス:%SpecialFolderPath%\雇用保険被保険者資格取得届\RAHAE191010202203270923377697709907793868800268.pdf
転記先のPDFファイルがある場所を指定します。
内訳は、「特別なフォルダーを取得」の変数\フォルダー名\ファイル名です
※PDFのファイル名はハローワークからダウンロードした名前のままで、変更していません。
もし自分でファイル名を変更した場合は、自分で変更したファイル名を入力します。
デスクトップ以外や違うフォルダ名などの場合も同様です。
もしファイルの保存先のパスが解らない場合は、該当のファイルを右クリックして、プロパティを選択し、「全般」タブの「場所」に表示されています。
※画面の位置でExcelデータの転記位置を記録するので、ウィンドウの大きさを毎回同じにする必要があります。
ウィンドウが最大化されていない場合は、上記のPDFファイルを1度、開いて閉じる作業を行うと、次PDFファイルを開いた時にウィンドウが最大化された状態で開けます。
・ウィンドウスタイル:最大化
PDFの画面が最大化されているか、縮小されているかで、後でマウス位置の設定に影響がでますので、ここは最大化で固定します。
・アプリケーション起動後:すぐに続行
8-3.ウィンドウ UI 要素をクリックする
雇用保険被保険者資格取得届のPDFファイルに書き込む準備をします。
「ウィンドウ UI 要素をクリックする」を使用して、PDFファイルのメニューにある「署名(S)」の「入力と署名(F)」を選択するアクションを設定します。
書き込むPDFファイル(雇用保険被保険者資格取得届)を開いておきます。
1.アクションのUIオートメーションで「ウィンドウ UI 要素をクリックする」をアプリケーションの実行の下に、ドラッグして、ワークスペースに追加します。
2.次にUI要素:の右側にある、下向きの矢印をクリックして、UI要素の追加をクリックします。
3.PDFファイルを選択して、画面を最大化にして開きます。
開いたら、「署名(S)」の所にカーソルを持っていくと「赤い四角」が表示されるので、その状態で「Ctrlを押しながら左クリック」します。
これでUI要素が追加されました。
UI要素に署名(S)が追加されました。
4.クリックの種類を左クリックにします。
そうすることで、署名(S)を左クリックする動作が設定されます。
次はPDFファイルのメニューにある「署名(S)」の次の「入力と署名(F)」を選択するアクションを設定します。
同じアクションなので、先程作成した「ウィンドウ UI 要素をクリックする」をコピーして使います。
5.「ウィンドウ UI 要素をクリックする」をクリックして、キーボードの「Ctrl+C」でコピーして「Ctrl+V」で貼り付けます。
コピーが作成されました。
6.次に「ウィンドウ UI 要素をクリックする」をダブルクリックします。
UI要素:が署名(S)になっているので変更します。
7.右側の下向き矢印をクリックして、下のUI要素の追加をクリックします。
8.PDFファイルを選択して、画面を最大化にして開きます。
開いたら、「署名(S)」をクリックして「入力と署名(F)」の所にカーソルを持っていくと「赤い四角」が表示されるので、その状態で「Ctrlを押しながら左クリック」します。
これでUI要素が追加されました。
8-4.数秒だけフローの実行を中断
PDFファイルの右側のメニューが小さくなるまで待つために、アクションの「Wait」を使い数秒だけ、フローの実行を中断して待機します。
右側のメニューの縮小で、様式への転記する画面が変更するので、すぐにアクションを実行すると、文字や数値の転記場所が変更してしまい、設定した場所に転記されません。
↓入力と署名を選択すると、右側のメニューが縮小されて、記入する様式が広がる
1.アクションのフリーコントロールで「Wait」を「ウィンドウのUI要素をクリックする」の下に、ドラッグして、ワークスペースに追加します。
2.私のデスクトップ環境では3秒待機で設定しました。
この秒数はデスクトップ環境の違いで、秒数が上下する場合がありますので、右側のメニューが縮小される前にアクションが実行される場合は秒数を伸ばしてください。
8-5.マウスクリックの送信
雇用保険被保険者資格取得届のPDFファイルに、Excelデータを転記していきます。
例として「1個人番号」の転記方法を説明します。
その他の転記は、画面のスクロールが必要のない箇所まで作成します。
私の場合は「2保険者番号」から「11.資格取得年月日」までは画面のスクロールが無いので同じ方法で転記します。
1.アクションの「マウスとキーボード」で「マウスクリックの送信」を「Wait」の下に、ドラッグして、ワークスペースに追加します。
2.マウスクリックの送信の設定画面下にある、マウスの移動をクリックします。
マウスの移動の設定が下に展開されます。
PDFファイルの「1.個人番号」を左クリックする設定を行います。
3.PDFファイルを最大化して、PDFメニューの署名(S)から署名と入力(F)をクリックします。
1.個人番号の下の記入欄にカーソルを持っていき、「Ctrl+Shift」を押して、現在のカーソル位置を取得します。
マウス移動の下のXとYに、取得したカーソル位置が表示されています。
その他のパラメータは
・送信するマウスイベント:ダブルクリック
・遅延:0
・相対:画面
・マウス移動スタイル:すぐに
※注意 画面の位置や作業環境でマウスの覚えている位置が変わってしまうので、作業環境が変更になった場合はマウスの位置を変更します。
8-6.キーの送信
雇用保険被保険者資格取得届のPDFファイルに、Excelデータを転記していきます。
1.アクションの「マウスとキーボード」で「キーの送信」を「マウスクリックの送信」の下に、ドラッグして、ワークスペースに追加します。
2.キーの送信の設定画面で「送信するテキスト:」に%ExcelData[LoopIndex][‘1個人番号’]%と入力します。
※変数に格納されている、ExcelDataのLoopIndex行目にある、列名[‘1個人番号’]のデータをPDFにキー送信する操作を行います。
列名に文字列を使用しているので、文字列に'(シングルクォーテーション)で囲みます。
8-7.マウスクリックの送信とキー送信
上記のマウスクリックの送信とキー送信を同じ方法で繰り返します。
1.画面のスクロールが必要のない箇所まで作成します。
私の場合は「2保険者番号」から「11.資格取得年月日」までは画面のスクロールが無いので同じ方法で転記します。
8-8.画面のスクロール
「12.雇用形態」から「事業所名」まで、PDFファイルに記入するため、画面をスクロールします。
1.アクションの「マウスとキーボード」で「キーの送信」を「キーの送信(11資格取得年月日)」の下に、ドラッグして、ワークスペースに追加します。
PDFファイルを最大化します。
2.右側のスクロールバーにカーソルを持っていき、「Ctrl+Shift」を押して、現在のカーソル位置を取得します。
※スクロールバーを左クリックすることで、画面を下に1クリック分だけ、スクロールさせます。
その他のパラメータは
・送信するマウスイベント:左クリック
・遅延:2
・相対:画面
・マウス移動スタイル:すぐに
8-9.マウスクリックの送信とキー送信、画面のスクロール
1.同じように「12.雇用形態」から「提出年月日」を転記したいので、マウスクリックの送信とキー送信を同じ方法で繰り返します。
途中で画面のスクロールも行います。
8-10.作成したPDFファイルを保存
作成したPDFファイルを保存したいので、「署名(S)と入力と署名(F)のウィンドウ UI 要素をクリックする」と同じ操作で、1.「ファイル(F)」と2.「名前をつけて保存(A)」、3.「保存するフォルダ」の「ウィンドウ UI 要素をクリックする」のアクションを追加します。
8-11.ウィンドウ内のテキストフィールドに入力する
上記で開いた「名前を付けて保存」のファイル名の場所に、個人ごとに「氏名と作成した年月日」が入ったファイル名で保存できるように設定します。
1.アクション「UIオートメーション」の「フォーム入力」から「ウィンドウ内のテキストフィールドに入力する」を「ウィンドウのUI要素をクリックする」の下に、ドラッグして、ワークスペースに追加します。
2.テキストボックスの右側の下向き矢印をクリックして、「UI要素の追加」をクリックします。
3.PDFファイルを最大化して、名前を付けて保存を開き、「ファイル名」の場所で「Ctrl+左クリック」で追加します。
4.入力するファイル名を「入力するテキスト:」の右側に入力します。
%SpecialFolderPath%\雇用保険被保険者資格取得届\%ExcelData[LoopIndex][‘4被保険者氏名’]%%CurrentDateTime.Year%年%CurrentDateTime.Month%月%CurrentDateTime.Day%日.pdf
ファイル名に日付を追加したいので、「現在の日時を取得」で取得した年月日を使います。
ファイル名の内訳を説明します。
%特別なフォルダーを取得% \フォルダー名\ %ExcelData[LoopIndex]にある[‘4被保険者氏名’]をファイル名に入れます% %最初に「現在の日時を取得します」で取得した年月日を使って、ファイル名に年月日を追加します。
%と%の間に年、月、日.pdfを入力します。
8-12.PDFファイルの保存
次に名前を付けて保存のファイル名の「保存」をクリックするアクションを追加します。
1.アクションのUIオートメーションで「ウィンドウ UI 要素をクリックする」をウィンドウのUI要素をクリックするの下に、ドラッグして、ワークスペースに追加します。
2.PDFファイルを最大化して、名前を付けて保存を開き、「ファイル名」の下の「保存(S)」を「Ctrl+左クリック」で追加します。
8-13.秒だけフローの実行を中断
次に「数秒だけフローの実行を中断」を入力して、フローの作成は終了です。
1.アクションのフリーコントロールで「Wait」を「ウィンドウのUI要素をクリックする」の下に、ドラッグして、ワークスペースに追加します。
2.Waitの期間:を「3」と入力して「保存」します。
これでフローが完成しました。
9.フローの実行
1.上にある「▷実行」をクリックするか、メニューにあるデバッグの▷実行をクリックして、フローの実行を行います。
※PDFファイルが最大化されていない場合は、一度PDFファイルを開いて、最大化して閉じます。
そうすることで、次に開く時は、最大化されて開きます。
3.フローの実行がうまくいったら、PDFファイルにExcelデータが転記され、ファイルが保存されます。
※注意
・Power Automate Desktopを実行する場合は、ExcelファイルやPDFファイルを閉じておきます。
・同じファイル名があると、上書きを求められて上手く作動しないので、作り直す場合は同じファイルを別のフォルダに移動するか、削除しましょう。
・フォルダ名やファイル名を変更した場合はPower Automate Desktopの内容も変更します。
今回作成したPDFファイルで「フリガナ(カタナカ)」が枠に収まらなかったので、手で修正しました。
修正が必要な箇所が有り、完全な自動化には至らなかったです。
それでも、ほぼ自動化できたので、人数が多いときなどは、手動で転記するより、時間の短縮になり、業務の効率化が図れました。
例として雇用保険被保険者資格取得届を作成しましたが、その他のPDFファイルでも試してみてください。
これからもPower Automate Desktopを使った、業務の自動化の方法を掲載したいと思います。