サーチ…
プロシージャの紹介
Sub
は、特定のタスクを実行するが特定の値を返さないプロシージャです。
Sub ProcedureName ([argument_list])
[statements]
End Sub
アクセス修飾子が指定されていない場合、プロシージャーはデフォルトで「 Public
になります。
Function
は、データが与えられ、理想的にはグローバルまたはモジュールスコープの副作用なしに値を返すプロシージャです。
Function ProcedureName ([argument_list]) [As ReturnType]
[statements]
End Function
Property
は、モジュールデータをカプセル化するプロシージャです。プロパティには最大3つのアクセサがあります。値またはオブジェクト参照を返すにはGet
、値を割り当てるにはLet
、オブジェクト参照を割り当てるにはSet
を使用します。
Property Get|Let|Set PropertyName([argument_list]) [As ReturnType]
[statements]
End Property
プロパティは通常、クラスモジュールで使用されます(ただし、標準モジュールでも許可されていますが)。そうでなければ呼び出しコードではアクセスできないデータにアクセサを公開します。 Get
アクセサーだけを公開するプロパティは "読み取り専用"です。 Let
アクセサおよび/またはSet
アクセサのみを公開するプロパティは「書き込み専用」です。書き込み専用のプロパティは、プログラミングの良い習慣とはみなされません。クライアントコードで値を書き込むことができれば、それを読み取ることができるはずです。書き込み専用のプロパティを作成する代わりに、 Sub
プロシージャを実装することを検討してください。
値を返す
Function
またはProperty Get
プロシージャは、その呼び出し元に値を返すことができます(また、そうする必要があります)。これは、プロシージャの識別子を割り当てることによって行われます。
Property Get Foo() As Integer
Foo = 42
End Property
例を用いた関数
上記のように、関数は、プロシージャ内で繰り返し発生する可能性のある小さなコードを含むより小さいプロシージャです。
関数は、コードの冗長性を減らすために使用されます。
プロシージャと同様に、関数は引数リストの有無にかかわらず宣言できます。
すべての関数が値を返すので、関数は戻り値の型として宣言されます。関数の名前と戻り変数は同じです。
パラメータ付き機能:
Function check_even(i as integer) as boolean if (i mod 2) = 0 then check_even = True else check_even=False end if end Function
パラメータなしの機能:
Function greet() as String greet= "Hello Coder!" end Function
関数は、関数内でさまざまな方法で呼び出すことができます。戻り値の型で宣言された関数は基本的に変数なので、変数と同様に使用されます。
機能呼び出し:
call greet() 'Similar to a Procedural call just allows the Procedure to use the
'variable greet
string_1=greet() 'The Return value of the function is used for variable
'assignment
さらに、関数は、ifおよび他の条件文の条件として使用することもできます。
for i = 1 to 10
if check_even(i) then
msgbox i & " is Even"
else
msgbox i & " is Odd"
end if
next i
さらに多くの関数では、引数のBy refやBy valなどの修飾子を使用できます。