エクセルVBA関数とサブ
エクセルVBA関数とサブの間の差は、サブができないが関数が値を返すことができるということです。関数とサブルーチンは、プログラムサイズが増大すると非常に便利になります。
機能
あなたはエクセルVBAが結果を返すタスクを実行したい場合は、機能を使用することができます。 (Visual Basicエディターで、[挿入、標準モジュール]をクリックします)モジュールに関数を置きます。たとえば、名前エリアと機能。
Function Area(x As Double, y As Double) As Double Area = x y End Function
説明:この関数は、2つの(タイプダブルの)引数と戻り値の型(タイプダブルのも同様の後の部分)を持っています。あなたは(ここでyはx)を返すようにしたいつながるかを示すために、あなたのコード内の関数(エリア)の名前を使用することができます。
あなたは今、単純に関数の名前を使用して、各引数の値を与えることによって、あなたのコード内のどこかから(つまり関数を呼び出す)この関数を参照することができます。
ワークシート上の/ VBAの作成・マクロ#コマンドボタンを[コマンドボタン] `と次のコード行を追加します:`リンクを置き
Dim z As Double z = Area(3, 5) + 2 MsgBox z
説明:あなたは「キャッチ」あなたのコードでは、この値に持っているので、関数が値を返します。あなたはこのために別の変数(z)を使用することができます。 (必要に応じ)次に、あなたはこの変数に別の値を追加することができます。最後に、メッセージボックスを使用して値を表示します。
あなたはシート上のコマンドボタンをクリックすると、結果:
サブ
あなたはExcelのVBAは、いくつかのアクションを実行したい場合は、サブを使用することができます。 (Visual Basicエディターで、[挿入、標準モジュール]をクリックします)モジュールにサブを置きます。
たとえば、名前エリアとサブ。
Sub Area(x As Double, y As Double) MsgBox x * y End Sub
説明:このサブは(タイプダブルの)二つの引数を持っています。これは、戻り値の型を持っていません!あなたは、単にサブの名前を使用して、各引数の値を与えることによって、どこかあなたのコード内からこのサブ(サブを呼び出す)を参照することができます。
ワークシート上の/ VBAの作成・マクロ#コマンドボタンを[コマンドボタン] `と次のコード行を追加します:`リンクを置き
Area 3, 5
あなたはシート上のコマンドボタンをクリックすると、結果:
あなたは機能とサブの違いを見ることができますか?関数は、我々は、この結果に値2を添加し、最終結果を表示値15を戻しました。我々は、サブと呼ばれるとき、私たちは、サブが値を返すことができないため、結果(15)の上にこれ以上のコントロールがありませんでした!