はじめに
2025年に入り、さまざまなLLMが登場し、自動化のレベルが一段引き上げられたと感じています。
そんな中で、UiPath が提供しているさまざまな AI 機能を実際に試してみよう、という趣旨の記事になります。
なお、本記事での検証はすべて 無料版(Community License)で使用できる範囲 に限定しています。
UiPath Studio Autopilot で自動RPAを生成する
UiPath Studio の Autopilot では、自然言語で指示を出すことで、いい感じに RPA を実装してくれるようです。
まずは手始めにプロジェクトを作成し、以下の処理を Autopilot に実装してもらいましょう。
- CSV ファイルを読み込む
- 読み込んだテーブルをフィルタする
- フィルタした結果を新たな CSV として作成する
プロジェクト画面から「Autopilot で生成」をクリックします。

コメント部分が編集状態になるので、自動化してほしい内容を入力し、生成をクリックする。

生成された内容をプレビューとして確認できる。生成までは40~50秒ほどで十分実用的な速度でした。確認をクリックすることでアクティビティが生成されます。

実行したところエラーになってしまいます。(このぐらいは、、という気持ち)

せっかくなので、エラーの修正を AI させる
先程発生したエラーをそのまま Autopilot に投げ込みます。右側のメニューから AI (gemini?) っぽいアイコンをクリックします。(因みに2025年12月時点では、この機能は Preview だそうです。)

Agent, Edit の双方のモードで試しましたが、スマートに修正作業はまだできないようです。

私が確認したところ、テストデータを作成する際に改行コードが認識されておらず、/nがそのまま文字列としてテストデータを作成してしまっているのが原因でした。
"No.,商品名,カテゴリ/n1,青森産 りんご,果実/n2,愛媛産 みかん,果実/n3,北海道産 じゃがいも,野菜/n4,千葉産 にんじん,野菜"
ということで、AI になんとかしてもらいましょう。式エディタから指示だすこともできるようです。出力はこちら。この生成はめちゃくちゃ早かったです。(実装は冗長ですが、、)

これで実行は問題なくいきました。
気になったこと
- 生成時のアクティビティに検証エラーが含まれる
- アクティビティ名が長く、見切れてしまう
- 生成される変数名がデフォルトの命名規則に違反している
- (この辺りはプロンプトの設定でなんとかなるかしら?)
- 例)データテーブルの変数名の場合は再現性がない
- dt1
- 〇〇DataTable
他の題材でも色々試す
- Webのスクレイピング
- プロンプト
- 気象庁の24時間降水量一覧表から表データを抽出してほしい
- 結果
- いまいち
- ほぼ空のアクティビティが生成された
- プロンプト
- OCR
- プロンプト
- PDFの表を抽出してExcelしてほしい
- 結果
- お題を悪かったのか、アクティビティが2つできただけなので、良し悪し分からず
- 何故か変数が作成されなかった
- プロンプト
- DataTable操作
- プロンプト
- データテーブルの差分を出してほしい。2つの引数を用意し、以下のように差分を出力してほしい
- 結果
- 少し手直しすれば、実運用でも使えるレベル
- ここまで指示したが、引数は作成されず
- プロンプト
DataTable操作
プレビュー コード化されたワークフローで Autopilot に頑張ってもらう
コード化されたワークフロー(coded workflow)はただの C# なので、かなり期待できそう。
コード化されたワークフローを作成し、Ctrl+Shift+G で Autopilot を呼び出せます。

生成するコードは前節で記載したDataTable操作のプロンプトにした。生成は1分未満で完了し、引数部分のみ修正すれば動作できるレベルだった。(別に他のLLMでも、という声が聞こえそうですが、)
気になる点は日本語の変数が採用されている。加えてプロンプトへコピペする際に改行があると、2行目以降はコピペされない。
生成されたコード
using System;
using System.Collections.Generic;
using System.Data;
using UiPath.Activities.System.Jobs.Coded;
using UiPath.CodedWorkflows;
using UiPath.Core;
using UiPath.Core.Activities.Storage;
using UiPath.Excel;
using UiPath.Excel.Activities;
using UiPath.Excel.Activities.API;
using UiPath.Excel.Activities.API.Models;
using UiPath.Orchestrator.Client.Models;
namespace testaiuipath
{
public class ワークフロー : CodedWorkflow
{
[Workflow]
public void Execute()
{
var 出力 = 入力1.Clone();
// 入力1の各行をループ処理します。
foreach (System.Data.DataRow 行1 in 入力1.Rows)
{
// 入力1の行と同じIDを持つ行を入力2から探します。
var 行2 = 入力2.AsEnumerable().FirstOrDefault(r => r["id"].ToString() == 行1["id"].ToString());
// 対応する行が入力2に存在する場合
if (行2 != null)
{
// 出力テーブルに新しい行を作成します。
var 新しい行 = 出力.NewRow();
// IDはそのまま設定します。
新しい行["id"] = 行1["id"];
var 差分あり = false;
// 各列の値を比較します。
foreach (System.Data.DataColumn 列 in 入力1.Columns)
{
// "id"列は比較対象外とします。
if (列.ColumnName == "id")
{
continue;
}
// 行1と行2で同じ列名の値が異なる場合
if (!object.Equals(行1[列.ColumnName], 行2[列.ColumnName]))
{
// 新しい行に、入力2の値を設定します。
新しい行[列.ColumnName] = 行2[列.ColumnName];
差分あり = true;
}
else
{
// 値が同じ場合は、DBNull.Value(空)を設定します。
新しい行[列.ColumnName] = System.DBNull.Value;
}
}
// 差分があった行のみ出力テーブルに追加します。
// 今回の要件では全行出力するため、この条件は不要ですが、
// 差分がある行だけを出力したい場合は if (差分あり) { ... } のように使えます。
出力.Rows.Add(新しい行);
}
}
// 差分が含まれたデータテーブルを返します。
return 出力;
}
}
}
UiPath Studio Autopilot の感想
ここまでいろいろ検証してみた結果、自然言語からの RPA 実装は まだ発展途上 という印象でした。
あくまで主観ですが、RPA エンジニア目線でのまとめは以下の通りです
(※ 市民開発者目線ではありません)
- アクティビティの実装 / 修正
- まだ実運用レベルには達していない
- 式エディタの実装 / 修正
- 生成が速く、実用的
- コード化されたワークフロー
- もう一声という印象はあるが、十分に実践投入できるレベル
さいごに
記事作成の当初予定は、Studio 以外の AI も検証するつもりでしたが、執筆のタイミングで風邪をひいてしまい断念しました。時間でき次第もう少し検証したいと思います




