NumberFormatプロパティ解説(Excel VBA)

Excel VBA: NumberFormat プロパティの使用方法

Excel VBAでは、セルの書式設定を制御するための多くのプロパティがあります。その中でも、「NumberFormat」プロパティは特に便利で、このプロパティを使うことで、特定のセルまたはセル範囲の書式設定を制御することができます。

NumberFormat プロパティとは

「NumberFormat」プロパティは、ExcelオブジェクトのRangeオブジェクトに対して使用します。これにより、数値、日付、時間などの値の表示形式を制御することができます。

使用例

以下に、「NumberFormat」プロパティを使用してセルの書式設定を変更するサンプルコードを示します。


    Sub SetNumberFormat()
        Dim rng As Range
        Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1")

        ' 数値をカスタム書式(カンマ区切り)で表示する
        rng.NumberFormat = "#,##0"

        ' 現在の書式設定をメッセージボックスに表示する
        MsgBox rng.NumberFormat, vbInformation
    End Sub
    

このコードでは、「Sheet1」のセル「A1」の書式設定を変更し、カスタム書式(カンマ区切り)で表示するようにしています。その後、メッセージボックスで現在の書式設定を表示します。

書式設定の一覧

「NumberFormat」プロパティに設定できる値は、Excelの「セルの書式設定」ダイアログボックスの「カスタム」カテゴリを参照してください。ここには、さまざまな数値や日付の書式が一覧表示され、それらをカスタマイズすることも可能です。

参考

Excel VBAには、「NumberFormat」プロパティと「NumberFormatLocal」プロパティの2つの書式設定プロパティが存在します。これらはよく似ていますが、使用する状況と適用される書式が異なります。

  1. NumberFormat プロパティ:
    • NumberFormatは、英語(アメリカ)のExcelの標準書式設定を用いるプロパティです。
    • このプロパティを用いることで、Excelの各セルに対して数値、日付、時間などの書式を設定することができます。
    • また、このプロパティには標準的な書式設定文字列(例えば、”General”、”Currency”、”Percent”など)を直接設定することができます。
    • 設定可能な書式設定の一覧は、Excelの「セルの書式設定」ダイアログボックスの「カスタム」カテゴリに表示されています。
    • このプロパティは、VBAコードを複数の地域で使用する場合や、特定の書式を強制する場合に便利です。
  2. NumberFormatLocal プロパティ:
    • NumberFormatLocalは、現在のユーザーの地域設定(言語設定)に基づいたExcelの書式設定を用いるプロパティです。
    • NumberFormatLocalプロパティは、地域設定に応じたカスタム書式設定を設定するためのもので、これにより日付や数値の表記を地域に応じて自動的に変更することが可能となります。
    • たとえば、ユーザーの地域設定が日本語であれば、日付は「年/月/日」の書式で表示され、数値は「千」単位でカンマが挿入されます。

要するに、NumberFormatNumberFormatLocalの主な違いは、後者が地域設定に応じた書式設定を提供する点にあります。したがって、開発者はVBAコードが動作する環境に応じて適切なプロパティを選択する必要があります。