ユーザー定義関数で税抜き価格
マクロ講座42回
![ユーザー定義関数で税抜き価格](gazo2013/2013_macro_42.png)
![ユーザー定義関数で税抜き価格](gazo2013/2013_macro_42.png)
税抜き価格を求めるユーザー定義関数 Excel2013 マクロ講座
ユーザー定義関数を利用する~Function プロシージャ
Function プロシージャは、VBAでユーザが定義する関数です。
単独で実行するよりも、Subプロシージャなどから呼び出して、一定の処理を実行し、結果として値を返すというのが、一般的です。
また、ユーザー定義関数は、Excelのワークシート上でユーザー定義関数として利用することもできます。
今回のサンプルは、税抜き価格を求めるユーザー定義関数と、三角形の面積を求めるユーザー定義関数の2つを作成します。
(サンプルファイルは、こちらから 2013マクロ講座42回サンプルデータ)
ユーザー定義関数を利用する
FunctionプロシージャとSubプロシージャ構文上の違いは、Functionプロシージャが最終的にプロシージャ名に値を代入するという形で、呼び出し元に戻り値を返すことです。
また、その戻り値のデータ型として、Functionプロシージャ自体にデータ型を指定します。
また、その戻り値のデータ型として、Functionプロシージャ自体にデータ型を指定します。
Functionプロシージャの構文
![ユーザー定義関数](gazo2013/macro/function.png)
![ユーザー定義関数](gazo2013/macro/function.png)
では、さっそく作成してみましょう。
簡単なところで、税抜き金額を表示するユーザー関数を作ります。
簡単なところで、税抜き金額を表示するユーザー関数を作ります。
プロシージャ名は任意ですが、ここではOfftaxにして、引数PはIntegerとします。
使用する金額が大きい時は、Doubleを使ってください。
![ユーザー定義関数2](gazo2013/macro/2013_macro_42_01.png)
使用する金額が大きい時は、Doubleを使ってください。
![ユーザー定義関数2](gazo2013/macro/2013_macro_42_01.png)
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](gazo2013/macro/2013_macro_42_02.png)
結果として税抜き価格がメッセージボックスで表示されます。
![ユーザー定義関数4](gazo2013/macro/2013_macro_42_03.png)
![ユーザー定義関数4](gazo2013/macro/2013_macro_42_03.png)
ユーザー定義関数は、ワークシート上で使うこともできます。
![ユーザー定義関数5](gazo2013/macro/2013_macro_42_04.png)
![ユーザー定義関数5](gazo2013/macro/2013_macro_42_04.png)
三角形の面積を求めるユーザー関数
三角形の面積を求める公式は、
(底辺)×(高さ)÷2 これを、ユーザー定義関数にするには、
引数は2つで底辺、高さですね。
(底辺)×(高さ)÷2 これを、ユーザー定義関数にするには、
引数は2つで底辺、高さですね。
プロシージャ名は任意ですが、ここではareaoftriangleにして、引数の型は、Doubleに
![ユーザー定義関数6](gazo2013/macro/2013_macro_42_05.png)
コードは、とても簡単です。
![ユーザー定義関数7](gazo2013/macro/2013_macro_42_06.png)
Function areaoftriangle(底辺 As Double, 高さ As Double) As Double areaoftriangle = 底辺 * 高さ / 2 End Function
![ユーザー定義関数7](gazo2013/macro/2013_macro_42_06.png)
普通の関数と同様にワークシート上で使えます。
![ユーザー定義関数8](gazo2013/macro/2013_macro_42_07.png)
今日の講義は以上です。お疲れ様でした。