エクセルVBAのパフォーマンス・処理速度に関するレポート
ExcelのマクロVBAは遅い・重いと良く言われることが多いようですが、
Excel 2010 のパフォーマンス: パフォーマンスの問題を最適化するヒント
- 参照とリンク
- 使用範囲の最小化
- 追加データの許可
- ルックアップ
- 配列数式と SUMPRODUCT
- 関数の効率的な使用
- VBA マクロの高速化
- Excel ファイル形式のパフォーマンスとサイズ
- ブックのオープン、クローズ、保存、およびサイズ
- 他のパフォーマンスの最適化
- まとめ
- その他の技術情報
ここは必読です、ここを読まずして、エクセルのパフォーマンスについて語る事がないように。
VBA高速化テクニック
- 無駄な表示を止める
- 無駄なSelectをしない
- 余計なことはしない
- 何度も同じことをしない
- 個別に呼ばない
- 型を指定する
- 名前で呼ばない
- 標準のプロパティ
- 関数も使おう
- セルの指定方法
- セルを配列に入れる
- 文字列型関数を使う
配列を使う事の有効性等、かなり参考になるはずです。
以下は、私が速度について記載したページです。
Findメソッドを私が使わない理由
いずれも多くの事が書かれており、結局何をどうすれば・・・
VBA高速化テクニック・・・セルを配列に入れる
また、単なるテクニックではなく、正しいロジック・アルゴリズムによっても大きく変わります。
上記の速度対策について、具体的なVBAコードで速度検証しています。
同じ処理をするVBAコードが、全部で11サンプル掲載しています。
遅いVBAがあるなら、そのコードは、この11サンプルのどのレベルなのかを見て下さい。
そして、それ以降の対策を考えてみましょう。
上記の速度対策では語られていない速度アップ技術について、以下で解説しています。
大量データにおける処理方法の速度王決定戦
遅い文字列結合を最速処理する方法について
ここでの速度アップ技術は、VBAにおける究極の対策です。
理論は決して難しいものではありませんが、
このような技術を、時々で臨機応変に駆使出来ればプロレベルと言えるでしょう。
同じテーマ「マクロVBA技術解説」の記事
最終行の判定、Rangeオブジェクトと配列、高速化の為に
記述による処理速度の違い
速度比較決定版【Range,Cells,Do,For,ForEach】
エクセルVBAのパフォーマンス・処理速度に関するレポート
VBAのFindメソッドの使い方には注意が必要です
マクロVBAの高速化・速度対策の具体的手順と検証
動的2次元配列の次元を入れ替えてシートへ出力(Transpose)
大量データで処理時間がかかる関数の対処方法(SumIf)
大量データにおける処理方法の速度王決定戦
遅い文字列結合を最速処理する方法について
大量VlookupをVBAで高速に処理する方法について
新着記事NEW ・・・新着記事一覧を見る
抜けている数値を探せ|エクセル雑感(2022-07-01)
.Net FrameworkのSystem.Collectionsを利用|VBA技術解説(2022-06-29)
迷路ネコが影分身の術を体得したら…|エクセル雑感(2022-06-27)
迷路にネコが挑戦したら、どうなるかな…|エクセル雑感(2022-06-26)
サロゲートペアに対応した自作関数(Len,Left,Mid,Right)|エクセル雑感(2022-06-24)
「マクロの登録」で登録できないプロシージャーは?|エクセル雑感(2022-06-23)
オブジェクトのByRef、ByVal、Variant|エクセル雑感(2022-06-22)
コメントから特定形式の年月を取り出す|エクセル雑感(2022-06-19)
4,9を使わない連番作成|エクセル雑感(2022-06-17)
連番を折り返して出力|エクセル雑感(2022-06-16)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.マクロって何?VBAって何?|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.エクセルVBAでのシート指定方法|VBA技術解説
- ホーム
- マクロVBA応用編
- マクロVBA技術解説
- エクセルVBAのパフォーマンス・処理速度に関するレポート
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。