エクセルのVBA関数とワークシート上の関数の違い
エクセルを使い始めた人にとって、関数やマクロなどを使用しようとしたときに感じる疑問に、「VBAとワークシート上の関数はいったい何が違うのだろう?」というものがあります。
結果的にはワークシートの関数とVBAの関数は全くの別物と思っていただいて良いと思います。
以下にVBAとワークシートの関数の違いを少しご紹介します。
<同じ意味の関数で、スペルが違う関数>
・今日の日付取得する場合
VBA関数 :「Date」
ワークシート関数:「Today」
・日付の間隔を取得する場合
VBA関数 :「Datediff」
ワークシート関数:「DATEDIF」
<スペルが同じで、違う動作をする関数>
・端数の丸め処理
VBA関数 :丸め処理
ワークシート関数:四捨五入
など他にも色々あります。
同じ動作をする関数というのはたまたま同じように名前がつけられただけです。同じ名称で同じ動作という関数はめったにないと思った方がいいと思います。
Excel5.0からマクロでVBAを記述するようになりましたが、それより前のバージョンのではマクロにワークシート関数に書いているように記述していました。
VBAというのはVB(Microsoft Visual Basic)というプログラム言語を元にして作成された言語となっています。
Officeでは、WordやAccessにもマクロがあり、それぞれWordBasic、AccessBasicというように、全く機能がバラバラのものが採用されていました。
それを統一しようとして作られた言語が、VBA(Visual Basic for Applications)ということなのです。
と言う経緯があることから、エクセル独自の関数とOffice全体のVBA関数とは違うということが分かりますよね。