0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ExcelVBA】文字列結合の速度比較(Excel2013 vs Excel2024)

Posted at

はじめに

最近自宅のOfficeを入れ替えたのですが、「もしかすると最新版のExcelだとマクロの処理が速くなっているかも」と思い、Excel2013とExcel2024で文字列結合の速度比較をしてみました。

テスト環境

ハードウェアの環境はExcel2013のテスト時と変わりません。

  • PC
    • CPU:Ryzen7 3700X
    • RAM:32GB
    • SSD:Samsung SSD 970 EVO Plus 500GB
  • Excel:Excel 2024 (64bit)

テストに使用したコード

実行結果

  • 理由は不明ですが、単純な文字列結合(SimpleConcat)が約4倍も速くなっていました!!
    • 単にExcelのバージョンが新しくなって速くなったのか、あるいは64bit版だとメモリを沢山使えるので速くなったのかは分かりませんでした。
    • かなり速くなったとはいえ、以下の配列を使う方法と比べると数十倍も処理が遅いです...
  • 固定長配列(ArrayJoin)を使う方法も高速化して「ほぼ0秒」で処理が終わりましたが、なぜか動的配列(DynamicArrayJoin)を使う方法はほとんど処理速度が変わりませんでした。
Excel 2013 (32bit) Excel 2024 (64bit)
SimpleConcatの処理時間 2.265625秒 0.576904秒
ArrayJoinの処理時間 0.015625秒 0秒
DynamicArrayJoinの処理時間 0.015625秒 0.014892秒

まとめ

  • ハードウェア環境は全く同じですが、Excel2013(32bit)と比べてExcel2024(64bit)では文字列結合の速度が全体的に向上していました。
  • ただし動的配列を使う方法はほとんど処理速度が変わらなかったので、文字列結合の処理速度が気になる場合は固定長配列を使う方法が良いかもしれません。
    • ただし固定長配列でバッファサイズを超えてしまう可能性がある場合は、動的配列を使った方が安心だと思います。

参考URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?