|
▼吉 さん:
こんばんは。
題名が・・・、自分で「ichinose さん お願いします」じゃあ・・、
おかしくて笑ってしまったので、再投稿です。
よく仕様がわかっていませんが・・・、
>すいません
>またまた質問ですが、
>教えていただいた方法で謎は解けたのですが・・・
>その出した答えを計算させようと思い『=Keisan()』
>を作ったのですが、どうせだったら一緒に処理させようと思い
>
> A B C
>1 幅0.2*長さ0.5 =del_wide(A1) =Keisan(B1)
>2 幅0.2*長さ0.5 =KeisanT(A2)
↑この計算が出来ればよいということでしょうか?
>
>考えてみたのですが、分かりませんでした。
>
>ちなみにセルC1の=Keisan(B1)の処理は下記のとおりです。
>'---------------------------------------------------------------
'==============================
Function Keisan(算出式, 四捨五入桁数) As Double
With Application
Keisan = .Round(.Evaluate(del_wide(算出式)), 四捨五入桁数)
End With
End Function
'===================================
Function del_wide(in_str) As String
For idx = 1 To Len(in_str)
If LenB(StrConv(Mid(in_str, idx, 1), vbFromUnicode)) = 1 Then
del_wide = del_wide & Mid(in_str, idx, 1)
End If
Next idx
End Function
これで
「=keisan(a2,2)」
とすれば答えは出ますよ!!
後は、関数の仕様の問題ですね!!
'==============================
Function Keisan2(算出式, タイプ, Optional 四捨五入桁数)
'タイプ 1 計算値 それ以外 式
'四捨五入桁数 タイプが1のときは、必須
式 = ""
For idx = 1 To Len(算出式)
If LenB(StrConv(Mid(算出式, idx, 1), vbFromUnicode)) = 1 Then
式 = 式 & Mid(算出式, idx, 1)
End If
Next idx
If タイプ = 1 Then
With Application
Keisan2 = .Round(.Evaluate(式), 四捨五入桁数)
End With
Else
Keisan2 = 式
End If
End Function
なんてして、機能拡張する仕様でも良いと思いますし・・・。
確認してみて下さい。
|
|