これは完了したよりも簡単です。 VBAエディタでは、小数点記号はドットです。ただし、MsgBox関数(とFormat関数)は、結果を書式設定するために、Excelの設定ではなくWindowsの地域設定を使用します。
MsgBoxに任意の書式設定を使用して数値を表示させるには、必要に応じて書式設定された値の文字列を作成する必要があります。ここで
はそれを行うための一つの方法です:
Option Explicit
Sub dural()
Dim S As String
Dim D As Double
Const myDecSep As String = "."
D = 1234.56
S = Format(D, "0.00") 'will format using the system separator
S = Replace(S, Application.DecimalSeparator, myDecSep)
MsgBox S
End Sub
あなたは、小数点と桁区切りの両方を使用する場合ことに注意してください、とあなたが例えば、入れ替えされている場合は、コンマとドットを使用する場合は、ドットを使用してすべてのカンマを置き換えないように2回行う必要があります。逆の場合も同様です。
Option Explicit
Sub dural()
Dim S As String
Dim D As Double
Const myDecSep As String = "."
Const myThousSep As String = ","
D = 1234.56
S = Format(D, "#,##0.00")
S = Replace(S, Application.DecimalSeparator, Chr(1))
S = Replace(S, Application.ThousandsSeparator, Chr(2))
S = Replace(S, Chr(1), myDecSep)
S = Replace(S, Chr(2), myThousSep)
MsgBox S
End Sub
01最初のステップとして
これはあなたの地域と言語のコントロールパネル(Win7のコントロールパネル=>地域と言語=>小数点記号)あなたの問題を解決するはずです。 – majjam
@ bamie9l:回答ありがとうございますが、私はマクロに対してのみこれをやりたいのですが、誰かが別の地域のマクロからでも使用していて、それでもポイントが表示されるようにしたいのですが。 – Jonathan
'MsgBox'や' Debug.print'などのアクションをWindowsの地域設定と異なるフォーマットで表示するには、これらの値を明示的にフォーマットする必要があります。 –