🗂
Excelで文字列計算できるVBA関数(CalcText)
Excelで文字列計算をしたいと思ったことありませんか?
数量計算書とか? 構造計算書とか? ”×” ”÷” ”√” 計算して欲しいなー
昔は、「TXTCALC」を使っていましたが 現在、使えない環境で困っていたとき
無料で簡単に導入できるので、ぜひ試してみてください。
1.「TXTCALC」の代替えがあるのか
調べてみましたが、色々 ありました。
しかし、有料だったり、自己責任で...って
同じ自己責任なら、自分で作ってみようかな
2.VBAで関数を自作
・四則計算+√+π+%+累乗対応・・・コードで追加可能
・不正文字チェック機能も追加
3.コードは、こんな感じ
Function CalcText(txt As String) As Variant
Dim expr As String, i As Long, ch As String
Dim invalidChars As String
On Error GoTo ErrHandler
If Trim(txt) = "" Then
CalcText = ""
Exit Function
End If
expr = StrConv(txt, vbNarrow)
expr = Replace(expr, "×", "*")
expr = Replace(expr, "*", "*")
expr = Replace(expr, "÷", "/")
expr = Replace(expr, "/", "/")
expr = Replace(expr, "−", "-")
expr = Replace(expr, "π", "3.14159265358979")
expr = Replace(expr, "√", "SQRT(")
expr = Replace(expr, "%", "/100")
invalidChars = ""
For i = 1 To Len(expr)
ch = Mid(expr, i, 1)
If InStr("0123456789+-*/().^", ch) = 0 Then
If InStr(invalidChars, ch) = 0 Then
invalidChars = invalidChars & ch & " "
End If
End If
Next i
If invalidChars <> "" Then
CalcText = "不正な文字があります: " & Trim(invalidChars)
Exit Function
End If
CalcText = Evaluate(expr)
Exit Function
ErrHandler:
CalcText = CVErr(xlErrValue)
End Function
4.導入手順
(1) Alt + F11 → VBAエディター
(2) 標準モジュールに貼り付け
(3) .xlsmで保存
(4) マクロ有効化
5.使い方とサンプル
式のセル 1/2(3+2)×4 答えのセル =CalcText(式のセル)
6.ファイルの保存
「名前を付けて保存」→ **Excelマクロ有効ブック(.xlsm)**を選択。
ファイル名例:CalcText.xlsm
7.ファイルを開く時
ファイルを開いたら、上部に黄色のバーが出ます。
**「コンテンツの有効化」**をクリック。
8.まとめ
無料でできる
TXTCALCの代替として使える
他人と共有するなら、READMEを添付して「マクロを有効化してください」と伝えればOK!
TXTCALCに代わる計算書ができるでー
ほいたらねー
Discussion