Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58945 / 76732 ←次へ | 前へ→

【22506】評価式の値を算出
発言  ichinose  - 05/2/23(水) 0:23 -

引用なし
パスワード
   ▼吉 さん:
こんばんは。
題名が・・・、自分で「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

なんてして、機能拡張する仕様でも良いと思いますし・・・。

確認してみて下さい。

0 hits

【22439】文字のみ削除するにはどうしたらよいのでしょうか? 05/2/20(日) 23:30 質問
【22440】Re:文字のみ削除するにはどうしたらよいの... ichinose 05/2/21(月) 0:11 回答
【22473】Re:文字のみ削除するにはどうしたらよいの... 05/2/22(火) 11:20 お礼
【22486】ichinose さん お願いします 05/2/22(火) 19:22 質問
【22506】評価式の値を算出 ichinose 05/2/23(水) 0:23 発言
【22509】Re:評価式の値を算出 05/2/23(水) 8:59 お礼

58945 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free