【EXCEL VBA | NumberFormatLocalプロパティ】セルの書式設定をして値を文字列として入力する。

スポンサーリンク

スポンサーリンク


ひらちんです。

VBAからセルに「4/5」とか「4-1」とかをVBAから入力すると、自動的に日付に変換されてしまって都合が悪い時ありますよね?

そんなときは、セルに入力する前に、セルの書式設定を「文字列」にしてから入力しましょう!

NumberFormatLocalプロパティ

セルの書式設定をするには、Rangeオブジェクトの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 の違いです。

他の使い方は大体一緒です。

内容NumberFormatNumberFormatLocal
標準“General”“G/標準”
色を指定する“Red”“赤”
「\」マークを表示“\\”“\”

また、文字列の前に「'」を使えることでもEXCELは文字列と認識します(^o^)


スポンサーリンク

スポンサーリンク

スポンサーリンク


シェアする

フォローする


スポンサーリンク