タグ

Collectionとexccelに関するkiyo_hikoのブックマーク (1)

  • VBAでCollectionのループ方法をFor Eachに書き換えるだけで100倍高速になった

    今、ExcelVBAでちょっとしたものを作ってるのですが、コーディング中に急にパフォーマンスが悪くなるという現象が発生したので、原因を調べてみたらCollectionの各要素を処理する場面が問題のようだった。CollectionをFor Eachで周すようにしただけで、さっきの遅さが嘘のように解決してしまった。 当にFor i = … のループを For Eachに書き換えただけで速くなるのか確信持てなかったし、他の原因も重なった結果かも、という疑惑も拭いきれない状態だったので、ExcelXPでベンチマークを取ってみました。 主要部分 下のLoop_for_indexとLoop_for_eachを比較しました。 'For i = ...版。 各要素を添字指定でアクセスする Public Sub Loop_for_index() Dim dummy As Long Dim i As Lo

  • 1