タグ

2016年7月4日のブックマーク (3件)

  • マクロVBAの高速化・速度対策の具体的手順と検証|VBA技術解説

    VBA技術解説 マクロVBAの高速化・速度対策の具体的手順と検証ExcelマクロVBAの問題点と解決策、VBA技術的解説

    マクロVBAの高速化・速度対策の具体的手順と検証|VBA技術解説
    cozyathtn
    cozyathtn 2016/07/04
  • 実践!エクセルVBAで配列を使いこなす

    エクセルVBAで大量のデータを処理する場合、プログラムの組み方によっては大きく処理時間が異なってくる。処理時間が30分かかるプログラムが、3分に短縮できるということもある。短縮の方法としては様々なテクニックがあると思うが、一番効果がありそうな配列処理について紹介したいと思う。 以前にも配列を使うと便利という記事を書いたが、もう少し踏み込んで紹介したいと思う。サンプルプログラムも載せていくので参考にしていただければと思う。ただ、筆者は趣味でプログラムを組むぐらいなので細かい間違いがあるかもしれない。そこは読み解きながら理解していただけるとありがたい。(御連絡いただければ修正します) まず、大量のデータ処理を行うにはメモリにデータを格納する必要がある。配列、コレクション、構造体などあるが、シンプルに配列を使うと処理速度も速く、プログラムもわかりやすくなるだろう。配列には1次元配列、2次元配列、

    実践!エクセルVBAで配列を使いこなす
    cozyathtn
    cozyathtn 2016/07/04
  • 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

    cozyathtn
    cozyathtn 2016/07/04