Excel2010、ユーザー定義関数の作成方法
Excel2010は、手頃な価格で高機能な表計算ソフトです。
多くの関数が標準装備され、色々な計算に使用する事が可能です。
しかし、標準の関数だけでは十分でない場合が有ります。
幸いにもユーザー定義関数を作成する事が可能で、自分で関数を幾つでも作れます。
使用したパソコンは、下記のソフトを使用していました。
OS : Windows7(64bit)
表計算ソフト : Excel2010(32bit)
以下、Excel2010、ユーザー定義関数の作成方法を記載して行きます。
(項目1)
・ユーザー定義関数の作成方法は、下記の手順で行います。
ユーザー定義関数 (Functionプロシージャー)
ユーザー定義関数の説明を登録(Application.MacroOptions)
・
Spreadsheet Page Excel Tips: User-Defined Function Argument Descriptions
In Excel 2010を参考に、
本ページを作成しております。
(項目2)
・ユーザー定義関数は、Functionプロシージャーで作成します。
・本事例では、工程能力指数Cpの関数で説明します。
・Functionプロシージャーでは、引数を渡し、戻り値を受け取ります。
引数 : LSL, USL, sigma
戻り値: Cp これは、(USL - LSL) / (6 * sigma)の計算結果です。
・ソースコードは、以下の通りです。
'ユーザー定義関数
Function Cp(
LSL,
USL,
sigma)
As Double
Cp = (
USL -
LSL) / (6 *
sigma)
End Function
(項目3)
・複数の関数を作成すると、その内容が分からなくなる場合が有ります。この様な場合は、関数の説明を登録
すると良いでしょう。
・ユーザー定義関数の説明を登録は、Application.MacroOptionsで行います。
・説明には、以下を記載できます。
関数の概要 : Description
関数の分類 : Category
各パラメータ: ArgumentDescriptions
・ArgumentDescriptionsは、Excel2010で追加された新機能です。
・残念ながら、入力時に出るポップアップの機能は無い様です。
・下記のマクロは、何処かで実行する必要が有ります。ファイルを開いた時に自動実行する様にすると良いと
思われます。
・マクロ実行前
・マクロ実行後
・ソースコードは、以下の通りです。
'ユーザー定義関数の説明を登録
Sub Cp_touroku()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1
To 3)
As String
FuncName = "Cp"
FuncDesc = "Cpは工程能力指数です。"
Category = 4
'統計
ArgDesc(1) = "下限規格値です。"
ArgDesc(2) = "上限規格値です。"
ArgDesc(3) = "標準偏差です。"
Application.
MacroOptions _
Macro:=
FuncName, _
Description:=
FuncDesc, _
Category:=
Category, _
ArgumentDescriptions:=
ArgDesc
End Sub
(項目4)
・上記のマクロを実行すると、ファイルに情報が残ってしまいます。
・ユーザー定義関数の説明を解除は、Application.MacroOptionsで行います。
・ソースコードは、以下の通りです。
'ユーザー定義関数の説明を解除
Sub Cp_kaijo()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1
To 3)
As String
FuncName = "Cp"
FuncDesc = ""
Category = ""
ArgDesc(1) = ""
ArgDesc(2) = ""
ArgDesc(3) = ""
Application.MacroOptions _
Macro:=
FuncName, _
Description:=
FuncDesc, _
Category:=
Category, _
ArgumentDescriptions:=
ArgDesc
End Sub
(項目5)
・全部のソースコードは、下記の通りです。
Option Explicit
'ユーザー定義関数
Function Cp(
LSL,
USL,
sigma)
As Double
Cp = (
USL -
LSL) / (6 *
sigma)
End Function
'ユーザー定義関数の説明を登録
Sub Cp_touroku()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1
To 3)
As String
FuncName = "Cp"
FuncDesc = "Cpは工程能力指数です。"
Category = 4
'統計
ArgDesc(1) = "下限規格値です。"
ArgDesc(2) = "上限規格値です。"
ArgDesc(3) = "標準偏差です。"
Application.
MacroOptions _
Macro:=
FuncName, _
Description:=
FuncDesc, _
Category:=
Category, _
ArgumentDescriptions:=
ArgDesc
End Sub
'ユーザー定義関数の説明を解除
Sub Cp_kaijo()
Dim FuncName As String
Dim FuncDesc As String
Dim Category As String
Dim ArgDesc(1
To 3)
As String
FuncName = "Cp"
FuncDesc = ""
Category = ""
ArgDesc(1) = ""
ArgDesc(2) = ""
ArgDesc(3) = ""
Application.MacroOptions _
Macro:=
FuncName, _
Description:=
FuncDesc, _
Category:=
Category, _
ArgumentDescriptions:=
ArgDesc
End Sub
(項目6)
・以上で、Excel2010、ユーザー定義関数の作成方法は終了です。