以前の記事「【Windows】Windows XP SP3適用時の注意点」で紹介したWinXP SP3を適用した場合に発生するスクリプトの問題について説明します。
この問題は、SP3適用時に指定した地域と言語オプションとは異なる地域と言語オプションに変更した場合に、指定した地域と言語の表示ではなく、SP3適用時に指定した地域と言語の表示になってしまうという問題です。

以下、事象の再現方法と対処方法。
1.SP3適用時に「日本語(日本)」を選択する。
2.[地域と言語オプション]を異なる地域に変更する。
 [コントロールパネル]-[地域と言語オプション]を実行する。
3.以下の設定に変更します。
 1)形式タブを選択し、現在の形式を英語(英国)に変更する。
  ※SP3適用時に指定した「日本語(日本)」以外なら何でも良い。
 2)場所タブを選択し、現在の形式で指定した場所を変更する。
  ※()内の国名を指定して下さい。
4.[OK]ボタンを押す。
5.メモ帳を開き、以下のスクリプトを記述する。
Wscript.Echo "Date is:" & DateValue(Now)
Wscript.Echo FormatCurrency(123.45)

6.ファイルを保存する。
 ファイル名   :「Sample.vbs」
 ファイルの形式 :「すべてのファイル(*.*)」
 ※拡張子が「.vbs」であれば、名前は何でも良い。
7.項番6で作成したVBScriptのファイルを実行する。

日本語の形式で日付と通貨が表示されてしまいます。
(本来であれば、英語(英国)の形式で日付と通貨が表示されます)

この問題を回避するためには、SetLocale()関数を利用します。

項番5で記述したコードを以下のように変更し、保存して下さい。
'英語(英国)のロケールに変更する
SetLocale(2057)
Wscript.Echo "Date is:" & DateValue(Now)
Wscript.Echo FormatCurrency(123.45)


【補足事項】
・SetLocale()の引数に指定するロケール識別子は、以下のサイト等で確認できます。
 ロケールID・言語コード一覧
・ロケールIDは、レジストリの以下のキーに保存されています。
 「HKEY_CLASSES_ROOT\MIME\Database\Rfc1766」
 ※Vistaでは、値のデータがXPとは異なります。