エクセルマクロVBA 戻り値 超便利なFunctionプロシージャ!!
プログラムを実行した結果、呼び出し元に返ってくる値のことを「戻り値」といいます。
関数は基本的に戻り値を返すプログラムです。
エクセルVBAでは、戻り値を返すプログラム、Functionプロシージャを作成することができます。
「エクセルマクロVBA 戻り値 超便利なFunctionプロシージャ!!」
1.関数の戻り値
関数の戻り値は、「=」でプロパティや変数に格納し、利用します。
(1)日付をセルに入力したい
指定した「年」「月」「日」のシリアル値を、セル「B2」に入力します。
シリアル値はDate関数の戻り値です。
Sub sample()
Worksheets(1).Range("B2").value = DateSerial(2020,4,20)
End Sub
※DateSerial関数
引数に指定した「年」「月」「日」を、日付を表すシリアル値に返します。
シリアル値 = DateSerial(year , month , day)
2.Functionプロシージャ
エクセルVBAでは、戻り値を返すプロシージャを作成することができます。
Functionプロシージャは、ほかのプロシージャ内で使用したり、セルに入力して関数と同じように使用したりすることもできます。
Function name[(arglist)][AS type]
statements
name = expression
End Function
(1)Functionプロシージャをワークシートで使用したい
引数に指定した2つの数値の合計を出すFunctionプロシージャを作成し、ワークシートで使用します。
①VBAの記述
Function goukei(arg1 As Long, arg2 As Long) As Long
goukei = arg1 + arg2
End Function
②エクセル内に数式を入力
=goukei(A1,A2)
③動作確認
・VBA記述画面
・エクセルシート画面
(2)Functionプロシージャをプロシージャ内で使用したい
引数に指定した3つの数値の合計を計算するFunctionプロシージャgoukeiを、プロシージャ内で使用します。
①VBAの記述
Sub sample()
MsgBox goukei ( Rage("A1") , Range("A2"))
End Sub
②動作確認
・VBA記述画面
・エクセルシート画面
3.プロパティの値
プロパティには値を取得、設定できるものと、取得しかできないものがあります。
プロパティの値は、セルに入力したり、メッセージボックスに表すことができます。
(1)A列の列幅を表示したい
A列からC列の列幅を各列の1行目に入力します。
Sub sample()
Range("A1").Value=Colums(1).With
Range("A2").Value=Colums(2).With
Range("A3").Value=Colums(3).With
End sub