ユーザー定義関数で税抜き価格

マクロ講座42回 
ユーザー定義関数で税抜き価格

税抜き価格を求めるユーザー定義関数 Excel2013 マクロ講座

ユーザー定義関数を利用する~Function プロシージャ

Function プロシージャは、VBAでユーザが定義する関数です。
単独で実行するよりも、Subプロシージャなどから呼び出して、一定の処理を実行し、結果として値を返すというのが、一般的です。
また、ユーザー定義関数は、Excelのワークシート上でユーザー定義関数として利用することもできます。
今回のサンプルは、税抜き価格を求めるユーザー定義関数と、三角形の面積を求めるユーザー定義関数の2つを作成します。
(サンプルファイルは、こちらから 2013マクロ講座42回サンプルデータ

ユーザー定義関数を利用する

FunctionプロシージャとSubプロシージャ構文上の違いは、Functionプロシージャが最終的にプロシージャ名に値を代入するという形で、呼び出し元に戻り値を返すことです。
また、その戻り値のデータ型として、Functionプロシージャ自体にデータ型を指定します。
Functionプロシージャの構文
ユーザー定義関数
では、さっそく作成してみましょう。
簡単なところで、税抜き金額を表示するユーザー関数を作ります。
プロシージャ名は任意ですが、ここではOfftaxにして、引数PはIntegerとします。
使用する金額が大きい時は、Doubleを使ってください。
ユーザー定義関数2
Function Offtax(P As Integer) As Integer
    Offtax = P / 1.08
End Function

Sub 本体価格()
    Dim Price As Integer
    Price = Offtax(Range("B2").Value)
    MsgBox "税抜きの本体価格は" & Price & "円です"
End Sub
    
本体価格マクロを実行すると、
ユーザー定義関数3
結果として税抜き価格がメッセージボックスで表示されます。
ユーザー定義関数4
ユーザー定義関数は、ワークシート上で使うこともできます。
ユーザー定義関数5

三角形の面積を求めるユーザー関数

三角形の面積を求める公式は、
(底辺)×(高さ)÷2 これを、ユーザー定義関数にするには、
引数は2つで底辺、高さですね。
プロシージャ名は任意ですが、ここではareaoftriangleにして、引数の型は、Doubleに
ユーザー定義関数6
コードは、とても簡単です。
Function areaoftriangle(底辺 As Double, 高さ As Double) As Double
    areaoftriangle = 底辺 * 高さ / 2
End Function
    

ユーザー定義関数7
普通の関数と同様にワークシート上で使えます。
ユーザー定義関数8
今日の講義は以上です。お疲れ様でした。
ユーザー定義関数 関連ページ