ジョージは、次のようなラテンアメリカの通貨形式を使用して情報を送信する必要がある単一のワークブックを持っています:238.769,76。グローバル設定を変更する以外に、ジョージはこれを処理する方法を思い付くことができませんでした。彼は、単一のワークブックの通貨形式を変更する方法があるかどうか疑問に思います。

ジョージが話す「グローバル設定」は、Microsoftによって技術的に「リージョン設定」と呼ばれています。実際、これらはWindowsによって直接処理されるため、そこでの変更は、Excelを含むWindows内で動作するすべてのプログラムに影響します。

VBAマクロを使用して魔法を実行することにより、設定を一時的に変更する方法があります。このマクロを特定のブックの開始と終了に関連付けると、ニーズが適切に満たされる可能性があります。マクロは次のとおりです。

Dim oldDecimalSep As String Dim oldThousandsSep As String   Private Sub Workbook_Open()

oldDecimalSep = Application.International(xlDecimalSeparator)

oldThousandsSep = Application.International(xlThousandsSeparator)

Application.DecimalSeparator = ","

Application.ThousandsSeparator = "."

Application.UseSystemSeparators = False End Sub
Private Sub Workbook_ BeforeClose(Cancel As Boolean)

Application.DecimalSeparator = oldDecimalSep     Application.ThousandsSeparator = oldThousandsSep     Application.UseSystemSeparators = False End Sub

これらのマクロを使用するには、異なる形式の区切り文字を使用するブックを開きます。次に、Visual Basic Editorを開き、プロジェクトウィンドウでThisWorkbookオブジェクトをダブルクリックします。マクロコードをコードウィンドウに配置し、すべてを保存します。

これで、ブックを開くたびに、Excelは既存の区切り情報を保存し、ジョージが望むようにコンマとピリオドを使用するように変更します。

ブックを閉じると、古いセパレータ情報が復元されます。

このコードには1つの落とし穴があります。ブックが開いている間、他のブックも開いていると、異なるフォーマットが使用されます。したがって、秘訣は、「特別な」ワークブックのみを操作することです。閉じたときにすべてが通常に戻ることを知っています。

このようなコードを使用するときに覚えておくべきことが1つあります。それは、表示される数値のフォーマット方法を変更するだけです。 Windowsが地域設定を処理する方法のために、それを行う必要さえないかもしれません。つまり、Excelでは次のような数値が表示される場合があります。

1,234,567.89。さまざまな地域設定を使用している国のユーザーにそのワークブックを送信すると、次のように表示されます。

1.234.567,89。つまり、Windowsは、表示されている世界の地域の数値を正しく表示します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13307)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。