カンマつきのセルをどのように処理したいのか不明ですけど、
加算したいのでしょうか?
仮に加算するとした場合のVBA関数の例を示します。
以下をVBEで標準モジュールに貼り付けて下さい。
その後は標準関数の様につかえます。
例えば、ワークシートのA1セルに 3,5,7,99 という内容が記されている場合に、
A2セルに = SumCommaSeparatedValue(A1)記入すれば(あるいは ツールバーの
fx で、ユーザー関数からSumCommaSeparatedValueを選べば)、A2には、
加算結果の114が表示されます。
なお扱う数値が大きい場合は、以下のコードの "Single" 4箇所を "Double" に
書き換えるか、いっそ "Variant" に変更してください。
加算でなく、乗算ならば、
ans = ans + t
の部分2箇所を
ans = ans * t
に変更してください。
その場合は関数名も、Sum〜でなく、Multiply〜としたほうが良いでしょう。
Function SumCommaSeparatedValue(ByVal c As Range) as Single
Dim ans As Single
Dim vstr As String
Dim i As Integer
Dim p As Integer
Dim t As Single
ans = 0
vstr = c.Text
Do
vstr = Trim(vstr)
p = InStr(vstr, ",")
If p > 0 Then
t = Val(Left(vstr, p - 1))
ans = ans + t
vstr = Trim(Mid(vstr, p + 1))
Else
t = Val(Trim(vstr))
ans = ans + t
vstr = ""
End If
Loop Until Len(vstr) = 0
SumCommaSeparatedValue = ans
End Function
|