概要
コード化されたワークフローの操作方法についてご説明します。
注:私の投稿する内容は個人の見解であり、所属団体を代表するものではありません。
はじめに
今回はコード化されたワークフローでUiPathの専用アクティビティで対応できない処理を行う方法についてご説明します。
コード化されたワークフローとは
コード化されたオートメーションの一つで、アクティビティの代わりに C# でコードを書くことにより自動化処理を実現する仕組みです。
コード化されたワークフローの他にも、コード化されたテストケース、コードソースファイルがあります。それぞれ以下の役割となっています。
- コード化されたワークフロー:.Xaml 形式のワークフローに相当
コード化されたオートメーションは UiPath Studio 2023.10 以降の Windows またはクロスプラットフォームプロジェクトでのみ利用可能です。Windows レガシでは利用できないので注意しましょう。
従来の『コードを呼び出し』アクティビティと比較してコード化されたワークフローが優れている点
- 再利用性: コード化されたワークフローは、他のプロジェクトやワークフローで簡単に再利用することができます。一度作成したコード化されたワークフローを複数のプロジェクトで使用することが可能です。
- 保守性: コード化されたワークフローは、コードの変更や更新が容易です。コードが一元管理されているため、修正やアップデートが簡単で、保守性が高いです。
- パフォーマンス: コード化されたワークフローは、ネイティブコードとして実行されるため、『コードを呼び出し』アクティビティより一般的に高速です。特に大規模なデータ処理や複雑なロジックを含むワークフローでは、効率的に動作します。
※「コードを呼び出し」アクティビティとコード化されたワークフローの使い分けの基準について、高速な実行が必要な場合が複数のプロジェクトで再利用する可能性が高い場合は、コード化されたワークフローを利用するのがよろしいと思います。
実施する内容
Excelファイルのシート名全件取得を行います。
コード例
C#で書いており、Execute() メソッド内にシート名を取得する処理を入れています。
//Alt + Enterで今回の処理で利用する参照を追加ください
using System;
using System.Collections.Generic;
using System.IO;
using UiPath.CodedWorkflows;
using Excel = Microsoft.Office.Interop.Excel;
//初回作成時のプロジェクト名
namespace GetSheetsDemo
{
public class GetSheetsTest : CodedWorkflow
{
[Workflow]
public List<string> Execute()
{
// Excelファイルのフルパスを取得。プロジェクトフォルダ内にExcelファイルを格納
string filePath = Path.GetFullPath("Book1.xlsx");
// シート名を取得するためのメソッドを呼び出し
List<string> sheetNames = GetSheetNames(filePath);
// 取得したシート名をコンソールに出力
foreach (var name in sheetNames)
{
Console.WriteLine(name);
}
return sheetNames;
}
private static List<string> GetSheetNames(string filePath)
{
List<string> sheetNames = new List<string>();
Excel.Application excelApp = new Excel.Application();
// 指定されたパスのExcelワークブックを開く
Excel.Workbook workbook = excelApp.Workbooks.Open(filePath);
//ワークブック内の各ワークシート名を取得
foreach (Excel.Worksheet sheet in workbook.Sheets)
{
sheetNames.Add(sheet.Name);
}
workbook.Close(false);
excelApp.Quit();
//COMオブジェクトの解放
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
//シート名を返す
return sheetNames;
}
}
}
その他tips
コード化されたワークフロー上でエラーが発生している場合、Alt + Enterを押下することで、

参照の追加が可能です。
