エクセルのシートをコピーアクティビティで左側に持ってくる方法

いつも大変参考にさせていただいております。

Excelのアクティビティについてご質問をさせてください。
Excelのシートをコピーアクティビティでシートをコピーする際に
一番左側にシートを持ってくることは可能でしょうか。
大量のシートがあるファイルにデータを持ってくる際に一番左にあったほうが
見やすいときがあるため、よろしくお願いいたします。excelシート追加.zip (35.2 KB)

コピーアクティビティではないですが、VBAで移動は可能です。
excelシート追加.zip (43.6 キロバイト)

1 Like

すごくダサいご提案でごめんなさい…

Get Workbook Sheetsでそのブックの全部のシート名を取得→シート数が判明、当該シートがインデックス何枚目にあるのか判明
当該シートをActivate
ショートカット(ctrl+PageUp)を(当該シートがインデックス何枚目にあるのか -1)回

2 Likes

条件が許すならかんたんExcelアクティビティパックに該当のアクティビティ
「シートを移動(移動先インデックス指定)」
というものがあります。

条件とは
1.外部のアクティビティを追加することが許可されている
2.Excelの「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックを入れることが許可されている
等です。

ご参考まで

1 Like

こんにちは

やり方はいろいろあるかと思いますが、UiPathだけで完結させたい場合は、Excel Activities Packageに含まれるClosedXMLを使う手もあるかと思います。

EXCEL application scope内でシートコピー、保存後、いったんScopeを抜けた後、
以下でシートの移動が可能です。

workbook = new ClosedXml.Excel.XLWorkbook("C:\..fullpath..\test.xlsx")
worksheet = workbook.Worksheet("test")
worksheet.Position = 0
workbook.Save()

workbook : ClosedXML.Excel.XLWorkbook 型
worksheet : ClosedXML.Excel.IXLWorksheet 型

1 Like

たくさんのご回答ありがとうございました!

今回は環境上UiPathのアクティビティのみで実装したく
Yoichi様を解決策とさせていただきましたが、
みな様から教えていただいたどの案でも目的の動きになりました。

本当にありがとうございました!!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.