3

私の周りの何人かは、windows/office で国別ローカリゼーションを使用しています。残念ながら、これはマクロが小数点位置にカンマを使用し、編集している pov-ray ファイルがリスト区切り記号のみにカンマを使用し、小数点が 1 桁にポイントを使用するため、単純な計算を実行できない状況につながります。Excelでは、システムの小数点記号をオーバーライドできることを知っています

With Application.
    .DecimalSeparator = "."
    .ThousandsSeparator = ","
    .UseSystemSeparators = False
End With

ただし、MS Word の DecimalSeparator のような Application のプロパティはありません。MS Word で、マクロの実行中にシステム セパレータを上書きする簡単な方法はありますか? それとも、povray ファイルの読み取り中に苦労してそれらを置き換える必要がありますか?

4

2 に答える 2

3

あまり辛抱強くないので、「より難しい方法」でやりました。パブリック変数を宣言しました

Public strDecimal As String

そして、メインサブの先頭で、その値を次のように設定します。

strDecimal = Application.International(wdDecimalSeparator)

次に、ソースですべての読み込みを次のように置き換えました

CDbl(strShort(5))

CDbl(Replace(strShort(5), ".", strDecimal))

およびすべての書き込み

Selection.TypeText Text:=CStr(Int(1000 * bondRadius) / 1000)

Selection.TypeText Text:=CStr(Replace(Int(1000 * bondRadius) / 1000, strDecimal, "."))

システム設定を上書きするほどエレガントではありませんが、それほど時間はかからず、私にとってはうまくいきます。誰かが理由を理解できる場合は、なぜ失敗するのか、コメントを残してください。

barrowc のコメント (thanx) からの情報で少し遊んで、それが読み取り専用なのか読み書き可能な値なのかを確認します。

于 2013-04-25T09:51:24.837 に答える