コンテンツ
アプリケーション用のVisual Basic(VBA)は、他のバージョンのVisual Basicやほとんどのプログラミング言語と同様に、コードを小さな独立した部分に分割することができます。そうすることで、小さなドライブの個々の性質により、プログラムの読み取り、書き込み、およびテストの面倒さが軽減されます。それらは再利用可能でもあるので、プログラムがタスクを実行する必要があるたびに同じコードスニペットを書く代わりに、プログラマーは単にその関数を数回呼び出すことができます。これは、VBA、およびVisual Basic(構造化プログラミング言語)を構成する機能の1つです。
コードを次のように分割するのは良い習慣です。 (Stockbyte / Stockbyte / Getty Images)
関数とサブルーチン
ほとんどの言語で、コードの一部は関数と呼ばれています。 VBAでは、それらは2つの異なるタイプに分けられます。関数とサブルーチンです。どちらのタイプも同じように表示され機能しますが、2つの大きな違いがあります。まず、関数はコード定義内で "Function"で宣言され、 "End Function"で終わります。サブルーチンは "Sub"で宣言され、 "End Sub"で終わります。次に、関数は値を返しますが、サブルーチンは値を返しません。 Excel VBAで値を返すには、関数を使う必要があります。
いつ値を返す必要がありますか?
よく書かれたプログラムは関数とサブルーチンを使ってデータをカプセル化し、コードの他の部分で行われた変更からそれを保護します。理解の容易さと一緒に、これは戻りませんサブルーチンに対して値を返す関数を使用する主な理由です。関数またはサブルーチン内の変数は残りのコードからは見えないので、プログラムの別の部分でコードの結果を使用するには、その関数が呼び出し側に値を返さなければなりません。サブルーチンで同じことをする唯一の方法は、カプセル化の原則を無視して、変数をプログラム全体に対してpublicとして宣言することです。
一例
値を返す関数の例としては、2つの数値を加算して合計の結果を返すものがあります。関数MySum(整数としてA、整数としてB)MySum = A + B End Functionステートメント "MySum = A + B"は結果を計算するだけでなく、同じ関数名の変数に値を入れます。これが戻り値になります。この例では、この関数の呼び出しは "Answer = MySum(2.2)"と同じくらい簡単で、Response変数は値4を受け取ります。関数は必要なだけ何度でも呼び出すことができます。
Excel VBAでの戻り値
Excelには多くのネイティブの数学機能と財務機能がありますが、柔軟性と能力を高めるには独自の方法を記述する必要があります。関数自体を書くことで、データ入力用の単純化されたオブジェクトを使ってフォームを構築することもできます。値を返してマクロに挿入する関数を書くことができます。
このようにして、C#のようなプログラミング言語を使用してプログラムを最初から構築する必要なく、複雑で強力なアプリケーションを設計できます。これにより、ネイティブのExcel関数の機能と、フォームに値を返す独自のカスタム関数を制御するオプションが得られます。