1

外部 Web サービスを介して自動入力されるドキュメント テンプレートがあります。受信データは通貨 (3.10 など) として存在しますが、Word 文書テンプレートに渡されると、末尾の 0 を削除するために変数が切り捨てられます。両方とも 0 であっても、常に小数点以下 2 桁で数値を表示する必要があります。

これは 2003 バージョンの Word を使用したものです。ドキュメント テンプレートはすべてそのバージョンの Word を使用して生成する必要があるため、他のバージョンではテストしていません。

4

1 に答える 1

1

これを行うには、マクロで Format 関数を利用できるはずです。

    Format(yourValue, "Currency")

通貨形式の値のみを受け入れることができるテキスト ボックスにユーザーが入力できるようにするために、次のようなマクロを使用しました。

Private Function getValue(text As String) As Currency
    If text = "" Then
        getValue = 0
    Else
        getValue = CCur(Val(RemoveNonNumeric(text)))
    End If
End Function

Private Function RemoveNonNumeric(inputStr As String) As String
    Const NUMERIC_CHARS = "0123456789."

    Dim result As String
    Dim currCharIndex As Long
    Dim currentString As String
    Dim deciCount As Integer
    Dim afterDeciCount As Integer

    deciCount = 0
    afterDeciCount = 0

    For currCharIndex = 1 To Len(inputStr)
        currentString = Mid$(inputStr, currCharIndex, 1)

        If currentString = "." Then deciCount = deciCount + 1

        If InStr(1, NUMERIC_CHARS, currentString) > 0 And deciCount < 2 And afterDeciCount < 3 Then
            result = result + currentString
            If deciCount > 0 Then afterDeciCount = afterDeciCount + 1
        End If
    Next

    result = result

    RemoveNonNumeric = result
End Function
于 2012-11-14T22:37:01.093 に答える