アクセス数アクセスカウンター

トップページ
更新・会社概要
ご 注 文 画 面
ご注文について
プライバシーポリシー
法律による表記
健康情報など
取扱商品一覧
お問い合わせ
パパナピ!

 


健康情報 ⇒ どこへ向かって・・・ ⇒ 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

こうしておけば、月途中で税率が変わったとしても柔軟に対応できますね。

Optionalについて



(C)山本健康堂 2005-2024