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

文書番号 : 13376     文書種別 : 使用方法     最終更新日 : 2004/01/14
文書を印刷する
対象製品
El Tabelle for .NET
詳細
日付型セルの書式に 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で公開されていました : 4563