|
VBAの関数とワークシート関数は別物です。
ましてVBAのFindメソッドに相当する一般機能は、「検索」です。
この場合の比較自体が間違いです。
VLOOKUPのVBAとなると、worksheetfunction を用いて、
VBAのコード中で、VLOOKUPを用いる方法になります。
セルの数や、数式の使い方によって、
VBAが速いか、一般機能(数式)が速いか異なります。
つまり、対象によって、何が最善かは試さないと分かりません。
データ件数が、5万件くらいあって、
そのようなシートが、いくつもあって、
シート間で、数式が参照していたりすると、
「シートの再計算」させるだけでも、とても時間が掛かります。
しかし、少ない範囲なら数式の方が速いですし、
ファイルサイズも少なくて済みます。
それに、VBAだと、
プログラムコード自体に改善の余地があることもありますし、
数式でも、シート上のデータのまとめ方や
数式の作り方で変わってきます。
速度を考えるなら
数式と、VBAを上手く使い分けて、作るのが理想的かもしれませんが、
数式は「保護」しないと不安でしょうし、使いやすさを損なってまで
速度を重視しないことは多いです。
先ほど書いたように、
VBAのなかで使用できるワークシート関数もありますし、
一時的に数式をセルに入力して計算させて、
そのあとセルの数式をクリアするような事も出来ます。
たいていの場合、
作り易さや、あとで自分が見たときの分かりやすさ、
仕様変更時の修正のし易さ等を重視するのが良いかと思います。
|
|