UiPathでExcelを操作する(活用編 : 最終行を取得する)
UiPathでExcelを操作する(活用編: 最終行を取得する)
概要
UiPathでExcelのセルから、最終行を取得する方法をご紹介します。
お約束事項(免責事項)
- この記事は2020年6月時点の情報を基に作成しております。
- 記事の内容は私個人の見解であり、所属する組織の公式見解ではありません。
スキル
この記事には、C#によるカスタムアクティビティの開発が含まれます。
カスタムアクティビティの開発方法は、UiPath公式のドキュメントを参照ください。
(本記事では最低限のみ記載します。)
https://docs.uipath.com/activities/lang-ja/docs/creating-a-custom-activity
必要なソフトウェア
- Visual Studio
- Nuget または Nuget Package Explorer
- Microsoft Office
実装内容の確認
マクロの記録を活用し、実装内容を確認します。
1. Excelデータを用意する
2. マクロの記録を開始する
開発タブから、マクロの記録を選択します。
マクロ名はデフォルトのまま進めます。
3. 開始セルを選択する
最終行を特定する前に、開始セルを選択する必要があります。
この記事では、1Aのデータが設定されている、C3のセルを選択しています。
4. [Ctrl] + [↓]で最終行に移動する
Ctrlキーと↓キーを押すと、最終行の4Aのセルに移動します。
5.マクロ内容の確認
実装
マクロの内容をもとに、実装します。
using Microsoft.Office.Interop.Excel;
using System;
using System.Activities;
using System.ComponentModel;
namespace UiPathCustomLibrary
{
public class GetEndRow : CodeActivity
{
[Category("Input")]
[RequiredArgument]
public InArgument<Object> WorkbookApplication { get; set; }
[Category("Input")]
[RequiredArgument]
public InArgument<String> SheetName{ get; set; }
[Category("Input")]
[RequiredArgument]
public InArgument<String> Range { get; set; }
[Category("Output")]
public OutArgument<int> EndRowNum{ get; set; }
protected override void Execute(CodeActivityContext context)
{
// 引数(InArgument)より、WorkbookApplicationのオブジェクトを取得する
// WorkbookApplicationの属性に必須(RequireArgument)を指定しているため、workbookappのnullチェックは不要
object workbookapp = WorkbookApplication.Get(context);
// WorkbookApplicationから、Microsoft.Office.Interop.Excel.Workbook型として(キャストして)、CurrentWorkbookを読み込む
Workbook workbook = workbookapp.GetType().GetProperty("CurrentWorkbook").GetValue(workbookapp) as Workbook;
// 対象のシート(初期値:null)
Worksheet worksheet = null;
// ワークシート一覧からシート名が一致するシートを取得する
foreach (Worksheet ws in workbook.Worksheets)
{
if (ws.Name == SheetName.Get(context))
{
worksheet = ws;
worksheet.Activate();
break;
}
}
// 対象のシートが初期値のままの場合、例外を発生して終了する
if (worksheet == null)
{
throw new ArgumentException("指定されたシート名が存在しません");
}
// 指定されたRangeを選択する
// マクロの("C3")と同じ
Range range = worksheet.Range[Range.Get(context)];
// セルを選択する
range.Select();
// 選択したセルから下方向に、最終行の行数を取得する
int endRowNum = range.End[XlDirection.xlDown].Row;
// 最終行を返り値に設定する
EndRowNum.Set(context, endRowNum);
}
}
}
実行確認
ExcelApplicationScopeでは”Sample.xlsx"ファイルを指定し、
Nuget Package Explorerで作成したライブラリをUiPath Studioでインストールした後、早速使ってみます。
Author And Source
この問題について(UiPathでExcelを操作する(活用編 : 最終行を取得する)), 我々は、より多くの情報をここで見つけました https://qiita.com/takusonix/items/9ddef4800650b9ca6eba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .