2011/08/22

tips.ExcelVBA改行コード

VBAの最適化について調べていたら見つけたことを検証した。

VBAで文字列中に改行コードを表す場合、VBAで用意されている定数「vbCrLf」を使う場合と、「Chr(13) & Chr(10)」を使い場合で速度が異なるということだった。

以下、1,000,000回繰返し中に改行コードと文字列の結合を行った際にかかる時間を算出してみた。
OS:WindowsXPSP3
Office:2003 SP3

1,000,000回繰返しを行った際の秒数を10回の平均で出したもの。



明らかに時間がかかっていることがわかる。
定数の場合は4倍は早いようだ。

よっぽどのことが無い限り定数を使うほうがよさそうという結論。

上記とは別件だが、エクセルのセル内改行はLFを用いている様子。