関数/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)