|
配分規格と配分要素から結果を得ると言う事で
ユーザー定義関数にするとこんなかな?
Option Explicit
Public Function Coefficient(vntStandard As Variant, vntElement As Variant) As Variant
' vntStandard : 配分規格
' vntElement : 配分要素
Dim i As Long
Dim vntList As Variant
Dim vntResult As Variant
'戻り値としてエラー値をセット
Coefficient = CVErr(xlErrValue)
'配分規格、配分要素が""ならFunctionを抜ける
If vntStandard = "" Or vntElement = "" Then
Exit Function
End If
'配分規格を"×"で配列に分割
vntList = Split(vntStandard, "×", , vbBinaryCompare)
'配分規格に配分要素が有るか探索
For i = 0 To UBound(vntList)
'有る場合はForを抜ける
If InStr(1, vntList(i), vntElement, vbBinaryCompare) > 0 Then
Exit For
End If
Next i
'結果に予め1を代入
vntResult = 1
'配分規格に配分要素が有る場合
If i < UBound(vntList) Then
'係数を乗算
For i = i To UBound(vntList)
vntResult = vntResult * Val(vntList(i))
Next i
Else
'無い場合Functionを抜ける
If i > UBound(vntList) Then
Exit Function
End If
End If
'戻り値として計算結果を返す
Coefficient = vntResult
End Function
引数vntStandardに配分規格、vntElementに配分要素を与えて下さい
|
|