記事

エクセルのワークシート上の関数とVBA関数

エクセルの関数やマクロを使い始めた人が感じる疑問として「ワークシート上の関数とVBAとは、いったい何が違うのだろう?」ということだと思います。
ワークシートとVBAの関数の違いを、以下に説明します。結論としては、ワークシートの関数とVBAの関数は、まったくの別物です。
このあたり、「エクセルは、なんとなく使える」という初級者の方は勘違いしているケースが多いので要注意です。

【同じ意味で、スペルが違う関数】
●今日の日付取得
ワークシート関数:Today
VBA関数   :Date
●日付の間隔を取得
ワークシート関数:DATEDIF
VBA関数   :Datediff

【スペルが同じで、違う動作をする関数】
●Round
ワークシート関数:四捨五入
VBA関数   :丸め処理

このほかにも、さまざまな違いがあります。 同じ名称で、まったく同じ動作をする関数は、めったにないと思った方がいいでしょう。 エクセル5.0からはマクロでVBAを記述するようになりましたが、それより以前のバージョンでは異なります。
そういった違いは、探せばかなりあるようです。
マクロにワークシート関数に書いているように記述していました。

VBAというのはVB(Microsoft Visual Basic)というプログラム言語を元にして作成された言語です。そういった経緯から、マイクロソフトoffice全体のVBA関数、とエクセル独自の関数とは違うことが分かりますよ。オフィスでは、WordやAccessにもマクロがあり、それぞれWordBasic、AccessBasicというように、まったく機能が異なるものが採用されていました。それを統一するために作られた言語がVBA(Visual Basic for Applications)なのです。

このカテゴリの記事一覧へ戻る ⇒ 関連情報