MS Excel VBO Write Collectionがすごく遅いですがどうしていますか?
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
04-11-20 02:47 AM
こんにちは。いつも参考にさせていただいています。
MS Excel VBO Write CollectionでCollectionの値をExcelに書き出しているのですが、
すごく遅いです。
6千行、4列程度で10分以上かかってしまいました。
Collectionの値をExcelに転記するのはよくある実装と思いますが、
皆様どのような工夫をされているのか、教えていただけますでしょうか?
------------------------------
CHIHOKO KISHIMOTO
------------------------------
MS Excel VBO Write CollectionでCollectionの値をExcelに書き出しているのですが、
すごく遅いです。
6千行、4列程度で10分以上かかってしまいました。
Collectionの値をExcelに転記するのはよくある実装と思いますが、
皆様どのような工夫をされているのか、教えていただけますでしょうか?
------------------------------
CHIHOKO KISHIMOTO
------------------------------
3 REPLIES 3
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
04-11-20 10:00 AM
標準ExcelVBOのWrite Collectionは各セルに一個ずつ値を書いていくので、数が多いと遅いのはどうしようもないと思います。
我慢できない場合、コードステージで配列を一括代入するようにしたバージョンを作ると良いです。
以下のサイトにこの高速化について解説があります。(VBAですが多少読み替えれば問題なく.NETでも使えるかと)
http://officetanaka.net/excel/vba/speed/s11.htm
なお宣伝みたいで恐縮ですが、私の会社で公開している「日商エレクトロニクス標準BPアセット」にはExcelVBOの拡張版も含まれていて、
まさに上記の高速バージョンが「Write Collection (Fast)」という名前で実装されていますので、よろしければ参考にしてください。
https://digitalexchange.blueprism.com/dx/entry/83455/solution/bp
------------------------------
Hidetoshi Suzuki
Nissho Electronics
Asia/Tokyo
------------------------------
我慢できない場合、コードステージで配列を一括代入するようにしたバージョンを作ると良いです。
以下のサイトにこの高速化について解説があります。(VBAですが多少読み替えれば問題なく.NETでも使えるかと)
http://officetanaka.net/excel/vba/speed/s11.htm
なお宣伝みたいで恐縮ですが、私の会社で公開している「日商エレクトロニクス標準BPアセット」にはExcelVBOの拡張版も含まれていて、
まさに上記の高速バージョンが「Write Collection (Fast)」という名前で実装されていますので、よろしければ参考にしてください。
https://digitalexchange.blueprism.com/dx/entry/83455/solution/bp
------------------------------
Hidetoshi Suzuki
Nissho Electronics
Asia/Tokyo
------------------------------
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
05-11-20 07:44 AM
こんにちは。Blue Prism の生井沢です。
以前、以下のスレッドで紹介させていただきました、Excel関連操作実装サンプル集 の「3. 単一CSVファイルからExcelへのコピペ」で [Copy] と [Paste] アクションを用いている実装が参考になるかと思います。この2つのアクションを利用するとクリップボード経由のコピー&ペーストが可能なので大量データの場合は効果的だと思います。
https://community.blueprism.com/communities/community-home/digestviewer/viewthread?GroupId=205&MessageKey=a262b013-0687-45ac-abb6-636a2fda08f8&CommunityKey=99c35a33-0706-4eb0-8b02-f23d6bb9b57f&tab=dig...
コメントを投稿した後に気づきましたが、上記手順は Excel から Excel へのコピー&ペーストする場合に有効な方法でした。今回は恐らく Excel 以外のアプリからコレクションとして抽出したデータを Excel へ貼り付けたいと言う用途だと思われるため上記方法ではダメですね…。失礼いたしました。
上記以外にも以下の神谷町RPAブログの内容も参考になるかと思います。
・大容量データを扱う
https://www.ebocean.work/entry/2019/10/31/100220
よろしくお願いいたします。
------------------------------
Hiromi Namaizawa
Senior Solutions Consultant
Blue Prism
Asia/Tokyo
------------------------------
以前、以下のスレッドで紹介させていただきました、Excel関連操作実装サンプル集 の「3. 単一CSVファイルからExcelへのコピペ」で [Copy] と [Paste] アクションを用いている実装が参考になるかと思います。この2つのアクションを利用するとクリップボード経由のコピー&ペーストが可能なので大量データの場合は効果的だと思います。
https://community.blueprism.com/communities/community-home/digestviewer/viewthread?GroupId=205&MessageKey=a262b013-0687-45ac-abb6-636a2fda08f8&CommunityKey=99c35a33-0706-4eb0-8b02-f23d6bb9b57f&tab=dig...
コメントを投稿した後に気づきましたが、上記手順は Excel から Excel へのコピー&ペーストする場合に有効な方法でした。今回は恐らく Excel 以外のアプリからコレクションとして抽出したデータを Excel へ貼り付けたいと言う用途だと思われるため上記方法ではダメですね…。失礼いたしました。
上記以外にも以下の神谷町RPAブログの内容も参考になるかと思います。
・大容量データを扱う
https://www.ebocean.work/entry/2019/10/31/100220
よろしくお願いいたします。
------------------------------
Hiromi Namaizawa
Senior Solutions Consultant
Blue Prism
Asia/Tokyo
------------------------------
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
05-11-20 08:25 AM
Suzuki様
ありがとうございます。
Write Collection (Fast)!まさに私が今欲しいものです!
参考にさせていただきます。
Namaizawa様
情報提供ありがとうございます。
最後に記載の通り、Collectionでいろいろとデータ加工したものを一気にExcelに張り付けたいという要件でした。
エクセル・CSV間のコピペの際は参考にさせていただきます。
------------------------------
CHIHOKO KISHIMOTO
------------------------------
