エクセルマニア

EXCE(エクセル)VBAの初めての手引き

TOP > VBA・マクロ >  STEP5.サブルーチン(Sub)と関数(Function)
このエントリーをはてなブックマークに追加

VBAの初めての手引き~STEP5.SubとFunction

 Subはサブルーチン、Functionは関数の事です。プログラムの量が多くなったり、再利用できるプログラムは サブルーチンや関数を作り、ソースを見やすく、使いやすくするのが主な役割です。


サブルーチンと関数の呼び出し例

Private Sub CommandButton1_Click()
 test1 (引数) 'これはサブルーチン
 test2 (引数) 'これは関数
End Sub
Sub test1(s As String)
 '~なにか処理する
End Sub
Function test2(s As String)
 '~なにか処理する
End Function

引数とは?

 引数とはパラメーターともいわれますが、その関数に与える値です。例えば、年月日を引数として与えれば、曜日が返ってくる関数を作る事もできます。


SubとFunctionの実装例


test1()というサブルーチン、test2()というFunction を作成しました。test1()を実行するとA1のセルに"あいうえお"、test2()を実行するとA2のセルに"かきくけこ"と表示されます。

SubとFunctionの実装例

以下が結果です。これだけでは、SubとFunctionの違いはまったくありません。

SubとFunctionの実装例の実行結果

FunctionとSubの違いと使い分け


FunctionはSubと違い、返り値を返す事ができます。つまりSubと同じことができ、さらに機能が増えていると考えてよいでしょう。以下に test2()の返り値を用いたプログラムの例です。
test2()を呼び出すとき"かきくけこ"と引数で与えられて、test2()関数内で "かきくけこさしすせそ"と加工し、それを返り値として返しています。


返り値の設定方法

 返り値を返す時は " 関数名 = 値 " と関数名に設定します(他のプログラム言語では " return 値 " の形式が多いのでちょっと間違えやすいですね。)。このソースでも test2()関数ですので test2 = s2 と返り値を設定しています。

返り値を返すFunctionの実装例

以下が結果です。

返り値を返すFunctionの実装結果

今回使用したソースプログラム

Private Sub CommandButton1_Click()
 test1 ("あいうえお")
 'test2()関数をコールし"かきくけこさしすせそ"が返ってくる
 Range("A2").Value = test2("かきくけこ")
End Sub

Sub test1(s As String)
 Range("A1").Value = s
End Sub

Function test2(s As String)
 Dim s2 As String
 s2 = s & "さしすせそ" '変数s2 を"かきくけこさしすせそ"に
 test2 = s2 '変数s2 をtest2()関数の返却値に設定
End Function

前へ




書籍  IT系資格  統計解析  データ分析  マーケティング