/ / Excel VBA関数とサブ

Excel VBA関数とサブ

関数 | サブ

違い 関数サブExcel VBA サブ関数は値を返すことができないということです。関数やサブプログラムは、プログラムのサイズが大きくなるにつれて非常に便利になります。

関数

Excel VBAでそのタスクを実行するには結果を返し、関数を使用することができます。関数をモジュールに配置します(Visual Basic EditorでInsert、Moduleをクリックします)。たとえば、名前がAreaの関数です。

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

説明: この関数は2つの引数(Double型)と戻り値の型(Double型のAsの後の部分)を持ちます。コード内の関数(領域)の名前を使用して、返す結果(ここではx * y)を示すことができます。

関数の名前を使用して各引数の値を与えるだけで、コード内の他の場所からこの関数を参照することができます(つまり関数を呼び出します)。

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

説明: この関数は値を返しますので、コード内でこの値を「キャッチ」する必要があります。これには別の変数(z)を使用できます。次に、この変数に別の値を追加することができます(必要な場合)。最後に、MsgBoxを使用して値を表示します。

シート上のコマンドボタンをクリックすると、結果が表示されます。

Excel VBA関数の結果

サブ

Excel VBAでいくつかのアクションを実行する場合は、サブを使用できます。モジュールにSubを配置します(Visual Basic EditorでInsert、Moduleをクリックします)。たとえば、名前がAreaのサブ。

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

説明: このサブには2つの引数(Double型)があります。戻り値の型はありません!サブの名前を使用し、各引数に値を与えるだけで、コードの他の場所からこのサブ(サブを呼び出す)を参照できます。

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Area 3, 5

シート上のコマンドボタンをクリックすると、結果が表示されます。

Excel VBAサブ結果

あなたは関数の違いを見ることができますか?サブ?関数は値15を返しました。この結果に値2を加え、最終結果を表示しました。サブを呼び出すと、結果を制御できなくなりました(15)。サブが値を返すことができないためです。

また読む: