Excel VBA入門 | 関数とその種類

Excel VBA入門

公開日:2018年1月14日

Excel VBAを学ぶ上で、文法の基本を学ぶことは言うまでもなく重要です。

ここでは基本構文の1つである関数について解説します。

関数とその種類【Excel VBA入門】
目次

1.関数とは

関数とは、Excelワークシートで使用するSUM関数やAvarage関数と同じように、関数毎に定められた値(といいます)を受け取って、決められた処理を行い結果を返すような命令をいいます。

2.関数の書式

関数(引数1,引数2,・・・引数N)

Nは数字を表します。

記述した関数とその引数から、その関数特有の処理を行い結果を返します。

引数の数やその内容は関数によって異なります。中には引数を取らない関数も存在します。

使用する上で注意する点としては、関数単体では正常に動作しない場合もあるということです。その場合には、オブジェクト式と組み合わせて使用することになります(後述の使用例を参照)。

3.使用例

次の例では、1番目の引数に設定した「サンプルVBA」という値(文字列)を、2番目の引数に設定した4という値(数値)の文字数(サンプル)だけ、A2セルに入力します。

【VBA実行前】

Excel VBA Left関数

【プログラム】

Sub 文字列の4番目までをセルA2に入力()

Range("A2").Value = Left("サンプルVBA", 4)  '(1)

End Sub

【VBA実行後】

Excel VBA Left関数

【解説】

(1)Range("A2").Value = Left("サンプルVBA", 4)
→セルA2の値に、Left関数を使用して「サンプルVBA」のうち、最初から4文字目までを代入します。

右辺が関数の書式「関数(引数1,引数2,・・・引数N)」の典型例になります。

Left関数はLeft(文字列,数値)の形を取り、最初の引数である文字列に指定された引数について、2番目の引数で設定した数値の文字数だけ結果として返す(Left関数側から言えば「返す」ですが、VBAプログラム側から言えば「受け取る」)、という動作を行います。

今回の例では「Left("サンプルVBA", 4)」ですので、「サンプルVBA」という文字列から4番目までの文字を返すということです。結果として「サンプルVBA」のうち、「サンプル」の4文字だけが結果として返ります。

【補足】文法上の注意点

返ってきた結果は、今回の例では「サンプル」という値(文字列)です。

従って、「Left("サンプルVBA", 4)」は、基本形では「値」と置き換えて考えることができます。

VBAプログラミングの文法では、「値」だけの記述で正常に動作するような形は存在しません。従って、「Left("サンプルVBA", 4)」だけを記述するとエラーになります(「コンパイルエラー 修正候補:=」)。

コンパイルエラー

コンパイルエラーにならないようにするには正しい文法で記述しないといけません。今回の例ではセルA2に入力したいので、オブジェクト式「オブジェクト.プロパティ = 値」を使用して、左辺にセルA2を表す「Range("A2").Value」を、右辺には、値が結果として返る「Left("サンプルVBA", 4)」を記述しています。

※オブジェクト式は、Excel VBA入門 | オブジェクト式とプロパティ、メソッドにて解説しています。ご参照ください。