yfujii
(Yfujii)
1
Excelとの連携について質問です。
ExcelファイルAからExcelファイルBに、
各月の販売量と売り上げを転記するソフトロボを作成
しようとしています。
この場合、「セルを読み込み」および「セルに書き込み」のアクティビティでは、複数のセルを一度に選択することはできないでしょうか。
なお、元になるデータはセルA1, A5, A9…といった形で飛び地のセルに入っており、「範囲を選択」は使えないのではないかと思っています。
上記のような理解ですので、逐一エクセルアプリケーションスコープの中で、①ファイルAのセルA1をコピー②ファイルBのセルA1に貼付③セルA5をコピー…
という様に作成しているのですが、このやり方だとアクティビティの数がとんでもないことになり、困っています。
恐れ入りますが皆さんのご知見を伺いたく、よろしくお願い致します。
HANACCHI
(はなっち!UiPath Japan MVP 2019-2022)
2
「範囲を読み込み」アクティビティで、DataTable型として読み込んでは如何?
ヘッダー追加せずに読み込むと、
A1セル相当だと、DataTable変数.Rows(0).item(0).ToString
A5セル相当だと、DataTable変数.Rows(4).item(0).ToString
A9セル相当だと、DataTable変数.Rows(8).item(0).ToString
となります
B1セル相当だと、DataTable変数.Rows(0).item(1).ToString
となります
1 Like
Yoichi
(Yoichi)
3
こんにちは
まず対象となるアドレスを配列やリストあるいはディクショナリとして持っておき、
それをループさせることを検討したほうが良いように思えます。
具体的には、読み書きするアドレスがA・Bとも同じであるならば、
addresses = {"A1","A5","A8","A12"}
としておいて
繰り返し(コレクションの要素)の中で
セル読みこみ、セル書き出しを行えば、
対象セルが増えてもアクティビティの数は増えません。
その上で、もう少しエクセルへの読み書きを効率的にしたいならば、 @HANACCHI さんの
POSTにあるようにDataTableを使うことを検討されると良いと思います。
1 Like
yfujii
(Yfujii)
4
@HANACCHI様 @Yoichi様
ご教示頂き、ありがとうございます。
五里霧中であったのが光がさしてきた様な思いです。
教えて頂いた、DataTable型で読み込む手法や、
配列/リスト/ディクショナリのアクティビティを駆使して
何とか作成してみようと思います。
改めまして、ありがとうございました。
3 Likes
system
(system)
Closed
5
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.