Top > マクロを使いこなすには > エクセルのVBA関数とワークシート上の関数は違う

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

Excelを使い始めの時、関数やマクロを使用するようになったときに感じる疑問は、「VBAとワークシート上の関数はどこが違うんだ」ということだろう。

ワークシートの関数とVBAの関数は全くの別物と思っておくといい。

以下にVBAとワークシートの関数の違いを少し紹介しておこう。

○同じ意味の関数で、スペルが違う関数
【今日の日付取得】
VBA関数   :「Date」
ワークシート関数:「Today」

【日付の間隔を取得】
VBA関数   :「Datediff」
ワークシート関数:「DATEDIF」

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

他にも色々ある。

同じ動作をする関数というのは、命名する際にたまたま同じような名前がついたものと考えればいい。同じ名称で同じ動作という関数はめったにない。

Excel5.0からマクロでVBAを記述するようになったが、それ以前のバージョンではマクロにもワークシート関数に書いているように記述していた。

VBAというのはVB(Microsoft Visual Basic)というプログラム言語を元にして作成された言語だ。

Officeでは、WordやAccessにもマクロがあり、それぞれWordBasic、AccessBasicというように全く機能が違うものが長く採用されていた。それを統一するために作られた言語がExcelを使い始めた人が関数やマクロなどを使用しようとしたときに感じる疑問として「VBAとワークシート上の関数は何故違うんだろう?」と思う方が多いと思います。

結果的にはワークシートの関数とVBAの関数は全くの別物と思ってください。
以下にVBAとワークシートの関数の違いを少しご紹介します。

○同じ意味の関数で、スペルが違う関数
【今日の日付取得】
VBA関数   :「Date」
ワークシート関数:「Today」

【日付の間隔を取得】
VBA関数   :「Datediff」
ワークシート関数:「DATEDIF」

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

など他にも色々あります。
同じ動作をする関数というのはたまたま同じように名前がつけられただけです。同じ名称で同じ動作という関数はめったにないと思った方がいいと思います。

Excel5.0からマクロでVBAを記述するようになりましたが、それより前のバージョンのではマクロにワークシート関数に書いているように記述していました。VBAというのはVB(Microsoft Visual Basic)というプログラム言語を元にして作成された言語となっています。

Officeでは、WordやAccessにもマクロがあり、それぞれWordBasic、AccessBasicというように全く機能がバラバラのものが採用されていました。それを統一しようとして作られた言語がVBA(Visual Basic for Applications)だ。

そのような経緯から、Excel独自の関数と、office全体のVBA関数は違うものだということが分かるだろう。