web-dev-qa-db-ja.com

Excel VBAの.NumberFormatオプションとは何ですか?

Excel VBAの.NumberFormat形式オプションについて教えてください。ご存じのとおり、Excel 2010は次のタイプをサポートしています。

enter image description here

たとえば、テキストタイプを次のように設定できることを知っています。

.NumberFormat ="@"

または番号用:

.NumberFormat = "0.00000"

VBAのタイプのその他のオプションについて教えてください。

46
user1760110

これはExcel for Mac 2011で行われましたが、Windowsでも同じであることに注意してください

マクロ:

Sub numberformats()
  Dim rng As Range
  Set rng = Range("A24:A35")
  For Each c In rng
    Debug.Print c.NumberFormat
  Next c
End Sub

結果:

General     General
Number      0
Currency    $#,##0.00;[Red]$#,##0.00
Accounting  _($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)
Date        m/d/yy
Time        [$-F400]h:mm:ss am/pm
Percentage  0.00%
Fraction    # ?/?
Scientific  0.00E+00
Text        @
Special     ;;
Custom      #,##0_);[Red](#,##0)

(カスタム用にランダムなエントリを選択しました)

70
doovers

この質問(および回答)のおかげで、Excelが提供するほぼすべての形式の正確なNumberFormat文字列を取得する簡単な方法を発見しました。


Excel数値形式のNumberFormat文字列を取得する方法


ステップ1:ユーザーインターフェイスで、使用するNumberFormatにセルを設定します。

I manually formatted a cell to Chinese (PRC) currency

この例では、「Account Numbers Format」コンボボックスに含まれるオプションから中国(PRC)通貨を選択しました。

手順2:[数値形式]ドロップダウンを展開し、[その他の数値形式...]を選択します。

Open the Number Format dropdown

ステップ:[番号]タブの[カテゴリ]で、[カスタム]をクリックします。

Click Custom

「サンプル」セクションには、適用した中国語(PRC)通貨フォーマットが表示されます。

「タイプ」入力ボックスには、プログラムで使用できるNumberFormat文字列が含まれています。

したがって、この例では、中国語(PRC)通貨セルのNumberFormatは次のとおりです。

_ [$¥-804]* #,##0.00_ ;_ [$¥-804]* -#,##0.00_ ;_ [$¥-804]* "-"??_ ;_ @_ 

希望するNumberFormatごとにこれらの手順を実行する場合、世界はあなたのものです。

これがお役に立てば幸いです。

18

doversは彼に素晴らしい答えを与え、それに基づいて次のように使用してみることができます

public static class CellDataFormat
{
        public static string General { get { return "General"; } }
        public static string Number { get { return "0"; } }

        // Your custom format 
        public static string NumberDotTwoDigits { get { return "0.00"; } }

        public static string Currency { get { return "$#,##0.00;[Red]$#,##0.00"; } }
        public static string Accounting { get { return "_($* #,##0.00_);_($* (#,##0.00);_($* \" - \"??_);_(@_)"; } }
        public static string Date { get { return "m/d/yy"; } }
        public static string Time { get { return "[$-F400] h:mm:ss am/pm"; } }
        public static string Percentage { get { return "0.00%"; } }
        public static string Fraction { get { return "# ?/?"; } }
        public static string Scientific { get { return "0.00E+00"; } }
        public static string Text { get { return "@"; } }
        public static string Special { get { return ";;"; } }
        public static string Custom { get { return "#,##0_);[Red](#,##0)"; } }
}
7
Developer

Excelでは、「カスタム」形式の選択で見つかるように、Range.NumberFormatを任意の文字列に設定できます。基本的に、2つの選択肢があります。

  1. 一般特定のフォーマットなし。
  2. 「$#、## 0」などのカスタム形式の文字列。使用している形式を正確に指定します。
5
DougM

.NETライブラリ EPPlus は、文字列定義から組み込みの番号への会話を実装します。クラス ExcelNumberFormat を参照してください:

internal static int GetFromBuildIdFromFormat(string format)
{
    switch (format)
    {
        case "General":
            return 0;
        case "0":
            return 1;
        case "0.00":
            return 2;
        case "#,##0":
            return 3;
        case "#,##0.00":
            return 4;
        case "0%":
            return 9;
        case "0.00%":
            return 10;
        case "0.00E+00":
            return 11;
        case "# ?/?":
            return 12;
        case "# ??/??":
            return 13;
        case "mm-dd-yy":
            return 14;
        case "d-mmm-yy":
            return 15;
        case "d-mmm":
            return 16;
        case "mmm-yy":
            return 17;
        case "h:mm AM/PM":
            return 18;
        case "h:mm:ss AM/PM":
            return 19;
        case "h:mm":
            return 20;
        case "h:mm:ss":
            return 21;
        case "m/d/yy h:mm":
            return 22;
        case "#,##0 ;(#,##0)":
            return 37;
        case "#,##0 ;[Red](#,##0)":
            return 38;
        case "#,##0.00;(#,##0.00)":
            return 39;
        case "#,##0.00;[Red](#,#)":
            return 40;
        case "mm:ss":
            return 45;
        case "[h]:mm:ss":
            return 46;
        case "mmss.0":
            return 47;
        case "##0.0":
            return 48;
        case "@":
            return 49;
        default:
            return int.MinValue;
    }
}

これらの形式のいずれかを使用すると、Excelはそれらを自動的に標準形式として識別します。

0
ice1e0