だいぶ前に
CSngがValよりもかなり遅いと書いたのですが、IsNumericも引数に文字列を渡すと処理が遅いことに気付きました。
試しにIsNumeric("12345")と、Val("12345")=0の速さを比較すると、私の環境ではVal関数で判定するほうが24倍も速かったです。数値に変換できない文字列を渡すとさらに差が出ます。文字列の内容にも依存するようで、"hoge"だと45倍程度、空文字列だと25倍程度でした。引数にnothingを渡すと2.5倍程度しか速くなりませんが、それでも結構な差です。
一方、引数に数値型の値(文字列ではない)を渡すとValの方が遅くなるようです。しかしIsNumericやValの引数に数値型の値を直接渡すケースはあまり無いと思います(大抵の場合は引数に十進文字列を渡すと思います)。
マケスピRSSからのDDEイベント処理の部分で、得られた値のチェックにIsNumericを使っていたのですが、これからは先にValで判定するようにします(Valを使って0が返ってきたら、IsNumericで0か数値以外のものなのかをチェックする、という感じ。多分それで事足りる)。
スポンサーサイト