日付型セルに月の省略名を表示するには?

文書番号 : 13549     文書種別 : 使用方法     最終更新日 : 2004/01/26
文書を印刷する
対象製品
El Tabelle for .NET 2.0J
詳細
日付型セルの書式にキーワード「MMM」を設定しても、"Jan" や "Feb" といった月の省略名は表示されません。これは、MMM の設定が現在のスレッドのカルチャに依存しているためです。さらに、スレッドのカルチャはシステムのロケール設定に依存します。

この現象は、次のコードで確認できます。

[Visual Basic]
Dim objDateTimeFormatInfo As New System.Globalization.DateTimeFormatInfo
objDateTimeFormatInfo = objDateTimeFormatInfo.CurrentInfo

For Each strMonthName As String In _
  objDateTimeFormatInfo.AbbreviatedMonthNames
  Debug.WriteLine(strMonthName)
Next


システムの設定に依存せずに月の省略名を表示するには、スレッドのロケールを変更します。

[Visual Basic]
'スレッドの現在のカルチャを取得する
Dim objCurrentCulture As System.Globalization.CultureInfo = _
  Application.CurrentCulture.Clone
'英語(US)のカルチャを取得する
Dim objEnglishCulture As System.Globalization.CultureInfo = _
  New System.Globalization.CultureInfo("en-US")
Dim objCurrentDateTimeFormat As _
  System.Globalization.DateTimeFormatInfo = _
  objCurrentCulture.DateTimeFormat.Clone
'英語(US)のカルチャから月の省略名をコピーする
objCurrentDateTimeFormat.AbbreviatedMonthNames = _
  objEnglishCulture.DateTimeFormat.AbbreviatedMonthNames
objCurrentCulture.DateTimeFormat = objCurrentDateTimeFormat
Application.CurrentCulture = objCurrentCulture

なお、この変更はコンポーネントのオブジェクトが作成される前に実行する必要があります。
キーワード
HowTo

この文書は、以前は次のFAQ IDで公開されていました : 4719