Excel VBA: NumberFormatLocal プロパティの使用方法
Excel VBAでは、セルの書式設定を制御するための多くのプロパティがあります。その中でも、「NumberFormatLocal」プロパティは特に便利です。これにより、特定の地域設定(ロケール)に対応した書式設定をセルに適用することができます。
NumberFormatLocal プロパティとは
「NumberFormatLocal」プロパティは、ExcelオブジェクトのRangeオブジェクトに対して使用します。これにより、数値、日付、時間などの値の表示形式を制御することができます。表示形式は、Excelのユーザーインターフェースに設定されたロケール(地域設定)に基づいて適用されます。
使用例
以下に、「NumberFormatLocal」プロパティを使用してセルの書式設定を変更するサンプルコードを示します。
Sub SetNumberFormatLocal()
Dim rng As Range
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1")
' 数値を日本の通貨書式(¥)で表示する
rng.NumberFormatLocal = "¥#,##0"
' 現在の書式設定をメッセージボックスに表示する
MsgBox rng.NumberFormatLocal, vbInformation
End Sub
このコードでは、「Sheet1」のセル「A1」の書式設定を変更し、日本の通貨書式(円記号とカンマ区切り)で表示するようにしています。その後、メッセージボックスで現在の書式設定を表示します。
書式設定の一覧
「NumberFormatLocal」プロパティに設定できる値は、Excelのユーザーインターフェースで設定されたロケールに基づいています。したがって、異なるロケールでは異なる書式設定を使用することがあります。
詳細な書式設定の一覧は、Excelの「セルの書式設定」ダイアログボックスの「カスタム」カテゴリを参照してください。
参考
Excel VBAには、「NumberFormat」プロパティと「NumberFormatLocal」プロパティの2つの書式設定プロパティが存在します。これらはよく似ていますが、使用する状況と適用される書式が異なります。
- NumberFormat プロパティ:
NumberFormat
は、英語(アメリカ)のExcelの標準書式設定を用いるプロパティです。- このプロパティを用いることで、Excelの各セルに対して数値、日付、時間などの書式を設定することができます。
- また、このプロパティには標準的な書式設定文字列(例えば、”General”、”Currency”、”Percent”など)を直接設定することができます。
- 設定可能な書式設定の一覧は、Excelの「セルの書式設定」ダイアログボックスの「カスタム」カテゴリに表示されています。
- このプロパティは、VBAコードを複数の地域で使用する場合や、特定の書式を強制する場合に便利です。
- NumberFormatLocal プロパティ:
NumberFormatLocal
は、現在のユーザーの地域設定(言語設定)に基づいたExcelの書式設定を用いるプロパティです。NumberFormatLocal
プロパティは、地域設定に応じたカスタム書式設定を設定するためのもので、これにより日付や数値の表記を地域に応じて自動的に変更することが可能となります。- たとえば、ユーザーの地域設定が日本語であれば、日付は「年/月/日」の書式で表示され、数値は「千」単位でカンマが挿入されます。
要するに、NumberFormat
とNumberFormatLocal
の主な違いは、後者が地域設定に応じた書式設定を提供する点にあります。したがって、開発者はVBAコードが動作する環境に応じて適切なプロパティを選択する必要があります。