アクセス数
健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ 計算結果を返す
処理がプロシージャ(1プログラム単位)内で完結する場合にはSubプロシージャを使いますが、計算結果を返す場合にはfunctionプロシージャ(関数)を使います
function ○○(byval △△ as Integer) as String
〜
End function
○○は関数名
△△は関数に引き渡す物(この例では、Integer型のもの)
最後のas String は、文字列型を関数の呼び出し元に返すということ。
※Integer,Stringなど型についてはこちら
サブプロシージャ、Excelのシートのどちらからも呼び出せます。
例)
Function ret99(ByVal intDan As Integer) As String
Dim i As Integer
For i = 1 To 9
ret99 = ret99 & " " & intDan * i
Next i
End Function
ret99という名前の関数です。
例えば、Excelのシートで =ret99(9) と打ち込むと、セル上には
9 18 27 36 45 54 63 72 81
と表示されます。9の段です。
ret99(8)とすれば8の段が表示されます。
以下のAs Integerで整数型の数値を受け取り、
Function ret99(ByVal intDan As Integer) As String
As Stringで文字列型の答えを返しています。
Function ret99(ByVal intDan As Integer) As String
関数名ret99はString型となり、ret99を関数内で加工することにより、答えを返しています。
関数はとっても長い計算式を切り分ける場合にも使えます。
消費税計算なら、
function zeikomi(zeinuki as Double) as Double
zeikomi = zeinuki * 1.05
end function
としておけば、どこからでも呼び出せるし、税率が変わっても対応できます。
いつからとかが心配であれば、
Public Function zeikomi(zeinuki As Double, Optional itu As Integer = 1) As
Double
Dim zeiritu As Double
Select Case itu
Case 1: zeiritu = 1.05
Case 2: zeiritu = 1.1
Case 3: zeiritu = 1.3
End Select
zeikomi = zeinuki * zeiritu
End Function
こうしておけば、月途中で税率が変わったとしても柔軟に対応できますね。