消費税のユーザー定義関数化
消費税の計算をする際、毎回「0.08」(2018年7月現在)と入力する場合があります。
これをユーザー定義関数化すると、このようになります。
例)
Function 消費税() 消費税 = 0.08 End Function
その結果ワークシートでは、このような表現が可能になります。
これなら、何を計算しているか分かり易いです。
ところがこの方法には一つ、留意すべき重大な問題点があります。それは、将来的に消費税率が変わった場合の対処です。もし、例えば2020年に消費税率が5%になっていたら、あるいは10%になっていたら?
例)
Function 消費税() 消費税 = 0.05 'または0.10 End Function
とした時点で、同シート内の過去の案件まで、消費税額が再計算されて変化してしまいます(※VLOOKUP関数などでも、同様の問題があります)。
これを解決する場合、例えば年月日情報を付加する方法があります。あくまで例えばの話ですが、こんな感じです。
Function 消費税(myYear As Long) As Double Select Case myYear Case Is < 1989 消費税 = 0 Case Is < 1997 消費税 = 0.03 Case Is < 2014 消費税 = 0.05 Case Else 消費税 = 0.08 End Select End Function
ただ、これはこれで、結構な面倒くささです。消費税のように認知度が高く、入力する手間もさほどでないならば、素直に「0.08」と入力したほうが良いでしょう。
むしろ、円周率πが「=PI()」で関数として定義されているように、当面変わりそうもない物性値の場合に有効かもしれません。
Function g() As Double ' 重力加速度(m/s2) g = 9.80665 End Function
参考まで。