Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2241 / 13645 ツリー ←次へ | 前へ→

【69180】書き込みスピード 亜矢 11/5/25(水) 19:53 質問[未読]
【69181】Re:書き込みスピード 初心者 11/5/26(木) 0:36 発言[未読]
【69182】Re:書き込みスピード jyun 11/5/26(木) 12:00 回答[未読]
【69186】Re:書き込みスピード 亜矢 11/5/26(木) 18:33 お礼[未読]
【69187】Re:書き込みスピード jyun 11/5/26(木) 22:52 回答[未読]
【69188】Re:書き込みスピード 亜矢 11/5/27(金) 4:55 お礼[未読]
【69189】Re:書き込みスピード jyun 11/5/27(金) 9:21 回答[未読]
【69194】Re:書き込みスピード 亜矢 11/5/28(土) 8:51 お礼[未読]

【69180】書き込みスピード
質問  亜矢  - 11/5/25(水) 19:53 -

引用なし
パスワード
   お世話になります。
 間接的にエクセルに関係するのですが、今MSProjectからエクセルを操作しています。
 エクセルにあるデータを同じシートの他のRangeに書くことをプロジェクトから
 行っています。プロジェクトではエクセルを参照設定してマクロを行っていますが、約10000行くらい書くのですが、プロジェクトから行うと3分くらい
 かかります。同じことをエクセルだけで行うと13秒程度でできます。
 これってプロジェクトから行っているので遅くなるんでしょうか。
 早くする方法がありましたら、教えていただきたいと思います。
 よろしくお願いします。
 

【69181】Re:書き込みスピード
発言  初心者  - 11/5/26(木) 0:36 -

引用なし
パスワード
   関係あるかわかりませんが
他言語ではグローバル変数をいったんローカル変数に代入して使うと
若干処理が速くなるようです

【69182】Re:書き込みスピード
回答  jyun  - 11/5/26(木) 12:00 -

引用なし
パスワード
   ▼亜矢 さん:
> エクセルにあるデータを同じシートの他のRangeに書くことをプロジェクトから
> 行っています。プロジェクトではエクセルを参照設定してマクロを行っていますが、約10000行くらい書くのですが、プロジェクトから行うと3分くらい
> かかります。同じことをエクセルだけで行うと13秒程度でできます。
> これってプロジェクトから行っているので遅くなるんでしょうか。
> 早くする方法がありましたら、教えていただきたいと思います。

10000行程度で13秒というのがそもそも遅すぎです。
Rangeオブジェクトに直接書き込みをしていませんか?(どんなコードですか)
配列で書き込むようにすると瞬時で終わると思います。

【69186】Re:書き込みスピード
お礼  亜矢  - 11/5/26(木) 18:33 -

引用なし
パスワード
   ▼jyun さん:
>▼亜矢 さん:
>> エクセルにあるデータを同じシートの他のRangeに書くことをプロジェクトから
>> 行っています。プロジェクトではエクセルを参照設定してマクロを行っていますが、約10000行くらい書くのですが、プロジェクトから行うと3分くらい
>> かかります。同じことをエクセルだけで行うと13秒程度でできます。
>> これってプロジェクトから行っているので遅くなるんでしょうか。
>> 早くする方法がありましたら、教えていただきたいと思います。
>
>10000行程度で13秒というのがそもそも遅すぎです。
>Rangeオブジェクトに直接書き込みをしていませんか?(どんなコードですか)
>配列で書き込むようにすると瞬時で終わると思います。
ありがとうございました。上記のヒントにて解決しました。配列に取り込んで
行うと一瞬でできました。ただし、その配列に取り込みには約40秒程度で
貼り付けは一瞬でした。なおコードはセルに1ヶ1ヶ入れるコードですので、
特別にここに書くほどのことではないと思いました。
 今後もよろしくお願いします。

【69187】Re:書き込みスピード
回答  jyun  - 11/5/26(木) 22:52 -

引用なし
パスワード
   ▼亜矢 さん:
>ありがとうございました。上記のヒントにて解決しました。配列に取り込んで
>行うと一瞬でできました。ただし、その配列に取り込みには約40秒程度で
>貼り付けは一瞬でした。なおコードはセルに1ヶ1ヶ入れるコードですので、
>特別にここに書くほどのことではないと思いました。

配列に取り込みには約40秒もかかっていては意味ないでしょう。
配列への代入も一気に一瞬で行ってください。

【69188】Re:書き込みスピード
お礼  亜矢  - 11/5/27(金) 4:55 -

引用なし
パスワード
   ▼jyun さん:
>▼亜矢 さん:
>>ありがとうございました。上記のヒントにて解決しました。配列に取り込んで
>>行うと一瞬でできました。ただし、その配列に取り込みには約40秒程度で
>>貼り付けは一瞬でした。なおコードはセルに1ヶ1ヶ入れるコードですので、
>>特別にここに書くほどのことではないと思いました。
>
>配列に取り込みには約40秒もかかっていては意味ないでしょう。
>配列への代入も一気に一瞬で行ってください。
早速のご指導ありがとうござます。
 出来ている表を取り込むわけでなく、ある条件を検索しながらそれを
 配列に取り込んでいます。よって、一気に取り込むことはできないと思われます。
 出来た表を一気に取り込むことは出来ました。

【69189】Re:書き込みスピード
回答  jyun  - 11/5/27(金) 9:21 -

引用なし
パスワード
   ▼亜矢 さん:
> 出来ている表を取り込むわけでなく、ある条件を検索しながらそれを
> 配列に取り込んでいます。よって、一気に取り込むことはできないと思われます。
> 出来た表を一気に取り込むことは出来ました。

スピード化は図れたのでしょうか。
もし、まだ数十秒もかかっているのなら、
>ある条件を検索しながらそれを配列に取り込んでいます。
↑の部分を、データ部を配列に一気に取り込み、その配列から検索してそれを書き込み用の配列に取り込むようにすれば高速で出来ると思います。
(配列の検索計算などの処理はメモリ操作なので最高速です)

【69194】Re:書き込みスピード
お礼  亜矢  - 11/5/28(土) 8:51 -

引用なし
パスワード
   ▼jyun さん:
>▼亜矢 さん:
>> 出来ている表を取り込むわけでなく、ある条件を検索しながらそれを
>> 配列に取り込んでいます。よって、一気に取り込むことはできないと思われます。
>> 出来た表を一気に取り込むことは出来ました。
>
>スピード化は図れたのでしょうか。
>もし、まだ数十秒もかかっているのなら、
>>ある条件を検索しながらそれを配列に取り込んでいます。
>↑の部分を、データ部を配列に一気に取り込み、その配列から検索してそれを書き込み用の配列に取り込むようにすれば高速で出来ると思います。
>(配列の検索計算などの処理はメモリ操作なので最高速です)
色々細かいご指導ありがとうございました。
 上記の指導の様に努力させていただきます。
 とりあえず、この質問はここで一度終了させていただき、上記の実施状況に
 より再度質問をさせていただきいたと思います。

2241 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free