関数値(戻り値)と( )の関係

関数/Functionモジュールはある値またはオブジェクトという変数でもある。Left関数は値なので変数でもあるので「関数値」とか「関数の戻り値」、「関数の返り値」と言える。Left(“abc”,2)は「ab」の入った文字列型の変数でもある。そのためLeft(“abc”,2) & “x”という式が使える。

プロシージャに渡すデータは「引数(パラメータ)」を使う。Left、Right関数を例に説明する。

LeftもRightも2つの引数を渡す必要がある。戻り値を得るには()を付ける必要がある。イミディエイトで戻り値を見るために先頭に?がいる。イミディエイトでは先頭の「?」または変数への代入「=」と()はセットで扱うと記憶する。以下は、イミディエイト。

?vba.Left("abc",2)             '文字列"abc"の左から2文字を取り出し、?でPrintする
ab
?vba.Left("abc",2) & "x"      ' ?vba.Left("abc",2)は「ab」の値を持つ文字列変数でもある
abx
aa=vba.Left("abc",2)           '変数aaにLeft関数の戻り値を入れる。
?aa                       '変数aaをPrintする
ab
?aa & vba.Right("abc",2)  '変数aaと文字列"abc"の右から2文字を取り出し、&で文字をつなぐ
abbc

関数の機能は、「パラメータ(引数)を渡し、処理した結果を返す」。

イミディエイトでvba.leftと入力すると自動メンバーの表示でLeftと先頭が大文字になる。コードモジュール内で書くとvbaもVBAに変換されるが、ここイミディエイトでは大文字小文字の変化は無い(入力の補正)。入力が正しいか判断したい場合は、自動メンバー表示を利用してvbaのように親に当たるオブジェクトかライブラリ名を書く。

戻り値と必要としない場合、()を付けない。また、戻り値を受けないので先頭に?はいらない。以下はイミディエイト。なんとエラーにもならない!

vba.Left "abc",2             '文字列"abc"の左から2文字を取り出し処理するが、戻り値は無い

戻り値がいるのでこのような使い方はしないが、()で戻り値を得ることを理解する。

(Visited 32 times, 1 visits today)
カテゴリー: 2 VBEを使うための基本操作と知識 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です