読者です 読者をやめる 読者になる 読者になる

或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

Excel VBAのFunctionについて #Excel #VBA

Function=関数のこと。
関数とは、引数を与えて戻り値を得る命令のことです。戻り値は必ずしも使用する必要はありません。

サンプルコード

Public Function isTrueFunction(b As Boolean)
    isTrueFunction = b
End Function

引数でもらった値をそのまま返却しています。

引数の返却の仕方

他の言語だとreturnを使う言語が多いですが、VBAは特殊です。Function名に値を格納すると引数として返却されます。Function名を誤ると、別の変数だと解釈されて、戻り値が帰らないので注意が必要。

イミディエイトウィンドウで実行(引数を使わない場合)

call isTrueFunction(True)
call isTrueFunction(False)

このようにcallを使えば呼び出せます。もっとも、戻り値を切り捨てているので、何も表示されませんので、何が行われているのかわかりませんでしょうけど。。。このような場合は、FunctionではなくてSubでも良いかと思います。

イミディエイトウィンドウで実行(引数を使う場合)

?isTrueFunction(True)
True
?isTrueFunction(False)
False

このように「?」を使えば引数を使えます。