はじめに
就労証明書は従業員の勤務状況を公的機関に証明するため所属企業の人事部が主体となって作成します。主な用途として保育園・学童の利用申請の際に従業員が会社に作成を依頼しますが、居住地の自治体ごとにフォーマットが異なっていることが自動化の大きな障壁となっています。
この課題を解決すべく、こども家庭庁が就労証明書の標準的な様式を提示・推奨しておりますが、現状では各自治体の足並みがそろっているとは言い難く独自フォーマットを使い続けるところもあります。
本記事ではUiPath Automation Cloudで利用可能な就労証明書Excelフォーマットを解析するエージェントの利用手順をご紹介します。
業務フローと本記事でのスコープ
- 就労証明書作成の大まかな業務フローは次の通りです。
- 従業員が就労証明書作成を申請
- 人事・総務部が申請内容を確認
- 人事システム・勤怠情報などから社員情報を取得
- 提出先自治体のフォーマットを確認
- 社員情報を自治体フォーマットへ転記
- 人事・総務部で内容を確認・承認
- 従業員へ就労証明書を送付
このうちRPAで自動化しやすいのは「2. 人事・総務部が申請内容を確認」「3. 人事システム・勤怠情報などから社員情報を取得」「5. 社員情報を自治体フォーマットへ転記」です。
一方 RPAで扱いにくいのは「4. 提出先自治体のフォーマットを確認」 です。就労証明書のテキストフィールドやチェックボックスのセル位置は自治体ごとに微妙に異なっており、たとえば従業員氏名が標準書式では I19 ですが、ある自治体では I20 になっているものもあります。
従業員の居住地のバラつきによりますが、場合によっては数十種類以上のフォーマットを扱う必要があるため自動化のボトルネックとなっています。
本記事ではエージェントを利用してこのフォーマット解析を自動化してみたいと思います。
デモ動画
完成形をイメージしやすくするため本記事でご紹介するソリューションを実行したときのデモ動画をご覧ください。
前提として従業員データはあらかじめ整っており、就労証明書のリンクは分かっている状態で、リンクを引数として渡すだけでその自治体のフォーマットに合わせて就労証明書を自動作成することができます。デモ動画では最初に文京区のフォーマット、次に多摩市のフォーマットで自動作成しています。
エージェントの利用手順
概要
- UiPathではエージェント開発としてAgent Builder、文書解析としてDocument Understanding / IXPを提供していますが、Excelフォーマットの対応が追い付いていないのが現状です。PDFに変換して処理させる方法もありますが、書き込み時の処理が煩雑になります。
- 本記事ではコード化されたエージェント(Coded Agents)を使い、PythonコードにてExcelフォーマットの構造解析を行います。ソースコードはこちらに公開しています。
-
Pythonコードでは入力引数で指定されたExcelファイルへのURLを元にファイルをダウンロードし、ラベルの位置を軸に各項目のテキストフィールドとチェックボックスのセル位置を特定してJSON形式で返します。
-
単純なコード実行だけでなくエージェンティックな動作を次のように組み込んでいます。
- 就労証明書Excelフォーマットをダウンロード
- 標準書式に対応したフォーマット解析スクリプトを実行
-
情報取得に不足があれば自己修復を試行 (不足項目が解決できない場合は
warningで出力) - 解析結果をJSON出力
デプロイ手順
最初にエージェント単体でデプロイ・動作確認を行い、次にRPAワークフローからエージェントを呼び出して全体的な業務の自動化を実装します。
前提条件の準備
UiPath Automation Cloud
- https://cloud.uipath.com にサインイン可能なアカウント
- コード化されたエージェントの実行に必要な ライセンス
エージェント開発端末
- WindowsまたはmacOSマシン
- Python 3.11以上をインストール
- uvコマンド(Pythonパッケージ管理)をインストール
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
# macOS
curl -LsSf https://astral.sh/uv/install.sh | sh
- 【Windowsの場合】Gitをインストールします。
エージェントのソースコード取得
-
エージェント開発端末にて作業ディレクトリを作成します。
-
次のコマンドでエージェントのソースコードを取得します。
git clone https://github.com/hidecha/employment-certificate.git
エージェントのパブリッシュ
-
次のコマンドを順次実行し、エージェントをUiPath Automation Cloudにパブリッシュします。
- Python仮想環境作成
cd employment-certificate/Agent uv venv- 【Windows(PowerShell)の場合】仮想環境に入る
.venv\Scripts\activate.ps1- 【macOSの場合】仮想環境に入る
source .venv/bin/activate- Pythonライブラリーをインストール
uv sync- ブラウザーでUiPath Automation Cloudにサインイン
uipath auth- パッケージ化してテナントにデプロイ
uipath deploy -tWindows環境で "❌ Failed to create package analyze-shuroushomei.1.0.0: 'cp932' codec can't decode byte 0x81 in position 483: illegal multibyte sequence" というエラーが発生する場合には、UTF-8エンコーディングを明示的に指定するためにPowerShellコンソールにて次のコマンドを実行し、別のPowerShellコンソールにて
uipath deploy -tを再実行します。[Environment]::SetEnvironmentVariable("PYTHONUTF8", "1", "User")
プロセス作成
エージェントをAutomation Cloudで実行可能な状態にするため、次の手順でプロセスを作成します。
-
Automation Cloud にサインインし、OrchestratorにてSharedなどのフォルダーを選択します。
-
オートメーション > プロセス > プロセスを追加 をクリックします。
-
パッケージソースとして
analyze-shuroushomeiを選択し、 次へ をクリックします。 -
パッケージ要件は特に不要ですのでそのまま 次へ をクリックし、プロセスの設定画面で 作成 をクリックします。
-
プロセスが正常に追加されましたら 閉じる をクリックします。
サーバーレスロボットの設定
エージェントの実行環境であるサーバーレスロボットの設定を行います。
フォルダーへの割り当て
実行アカウントとサーバーレスロボットをフォルダーに割り当てます。
-
Orchestratorにてプロセスを作成したフォルダーを選択し、設定 > アクセス権を管理 > アカウント/グループ/外部アプリを割り当て をクリックします。
-
既存のアカウントを選択、もしくは「新しいロボットアカウントを作成」を選択し、ロボット名を入力します。
-
アカウントのロールとして Automation User を選択し 割り当て をクリックします。
-
テナントロールとして Allow to be Automation User が選択されていることを確認し、 テナントロールを割り当て をクリックします。
-
Orchestrator > 設定 > マシン > フォルダーのマシンを管理 をクリックします。
-
先ほど作成したサーバーレスロボットのマシンを選択し、更新 をクリックします。
エージェント実行
-
Orchestratorフォルダー > オートメーション > プロセス >
analyze-shuroushomeiの実行ボタンをクリックします。 -
エージェント実行時には就労証明書ExcelフォーマットのURLを指定します。
{自治体名} 就労証明書でWeb検索をして、自治体のWebサイトから就労証明書(Excelフォーマット)のリンクをコピーします。 -
入力引数
URLにペーストして 開始 をクリックします。 -
約1分後に実行が成功し、フォーマット解析結果が表示されることを確認します。
- 出力はJSONフォーマットで内容は次の通りです。
- municipality: 自治体名
- sheet_name: 記入対象のシート名
- text: {"テキスト項目名": "セル位置"}
- checkbox: {"チェックボックス項目名": "セル位置"}
- error: エラーメッセージ (正常時はnull)
- warning: 警告メッセージ (標準書式と比較して不足項目があった場合に表示)
{'StatusCode': 417, 'StatusDescription': '417', 'Message': 'No llm routing rule found for product agenthub in EU using model gpt-5.2-2025-12-11 - check data residency configuration.' ... }というエラーが発生する場合には次項目の手順にて別のLLMを指定します。 - 出力はJSONフォーマットで内容は次の通りです。
エージェント実行のLLM指定
エージェント実行には既定で gpt-5.2-2025-12-11 が使用されます。別のLLMを指定するには analyze-shuroushomei プロセス設定の環境変数にて UIPATH_CHAT_MODEL=gpt-4o-2024-08-06 のように指定します。利用可能なLLMはテナントのリージョンごとに異なることがあります。
RPAワークフローからのエージェント実行
RPA開発端末
- Windowsマシン (エージェント開発端末と共存可能)
- UiPath Studio v2024.10以上
RPA実行手順
次の手順でワークフローからエージェントをコールし、就労証明書作成の自動化を実行します。
前提として従業員データはあらかじめ取得してCSV形式で保存済みとします。この作業も人事システムに応じて自動化が可能ですが本文書ではスコープ外とします。
-
GitHubから取得したソースコードの
RPAフォルダー配下をエクスプローラーで確認します。 -
テスト用従業員CSVデータ
input\sample_data.csvを開き、必要に応じて編集します。別ディレクトリに保存することもできます。 -
project.jsonをUiPath Studioで開きます。 -
エージェント実行アクティビティにて、必要に応じてOrchestratorフォルダーとプロセスを再選択します。
-
RPAワークフローの
url入力引数に自治体の就労証明書Excelフォーマットへのリンクを指定します。 -
CSVデータを別ディレクトリに保存した場合には
input_csvpath入力引数にフルパスを指定します。 -
就労証明書 (Excelファイル) の出力先は既定では
.\outputですが、変更するにはfolderpath入力引数にパスを指定します。 -
デバッグ実行して指定した自治体のフォーマットで就労証明書が自動作成されることを確認します。
-
生成された就労証明書のフルパスは
output_excelpath出力引数で取得可能です。
既知問題
現在私が把握している限りでは下記の就労証明書フォーマットには対応しておりませんので、あらかじめご了承ください。
- 英語フォーマット
- Excelマクロ形式
- チェックボックスがフォームコントロール形式
これらの形式への対応が必要な場合にはエージェントとRPAワークフローをご自身で改修いただくようにお願いいたします。
おわりに
本記事では自治体ごとにフォーマットが異なる就労証明書をエージェントによって自動解析し、RPAによって項目入力を自動化するサンプルワークフローの実行手順について説明しました。エージェントとRPAを組み合わせることによって自動化領域を拡大できることがお分かりいただけたかと思います。皆さまの業務でも是非ご活用ください!


















