はじめに
ひらちんです。
VBAからセルに「4/5」とか「4-1」とかをVBAから入力すると、自動的に日付に変換されてしまって都合が悪い時ありますよね?
そんなときは、セルに入力する前に、セルの書式設定を「文字列」にしてから入力しましょう!
NumberFormatLocalプロパティ
セルの書式設定をするには、RangeオブジェクトのNumberFormatLocalプロパティを設定します。
簡単ですね(^o^)
ワークシートで言うと次の図のようなところですね。
ちなみに、設定出来る表示形式は以下のようなものがあります。
形式 | 説明 | 備考 | 設定例 |
---|---|---|---|
% | パーセント表示 | “0”、”#”と組み合わせる | 0.0% |
@ | 文字列 | – | @ |
. | 小数点 | “0”・”#”と組み合わせる | 0.0 |
, | 桁区切り | “0”・”#”と組み合わせる | #,### |
: | 日時 | “h”・”m”・”s”と組み合わせる | hh:mm:ss |
/ | 日付 | “y”・”m”・”d”等と組み合わせる | yy/mm/dd (西暦年月日) |
G/標準 | 標準 | – | G/標準 |
【”0″と”#”の違いについて】
“0”は指定された桁に値がなければ”0″と表示されます。
“#”は指定された桁に値がなければ空白になります。
今回は、文字列で入力したいので「@」に設定しましょう!
A1セルに、「4-1」を文字列で入力してみましょう。
まずは、何も設定せずに「4-1」を入力します。
Sub sample()
Range("A1").Value = "4-1"
End Sub
日付になってしまいましたね。
では、書式設定してから入力してみましょう。
Sub sample()
With Range("A1")
.NumberFormatLocal = "@"
.Value = "4-1"
End With
End Sub
書式が文字列に変わったので、「4-1」と正しく入力出来ました。
おまけ
書式の設定は、他にNumberFormatプロパティというよく似た名前のプロパティでも可能です。
NumberFormatLocal と NumberFormat の違いです。
他の使い方は大体一緒です。
内容 | NumberFormat | NumberFormatLocal |
---|---|---|
標準 | “General” | “G/標準” |
色を指定する | “Red” | “赤” |
「\」マークを表示 | “\\” | “\” |
また、文字列の前に「’」を使えることでもEXCELは文字列と認識します(^o^)
コメント