例えば
・Range(“B2”) = “2-3“
とすると、セルには
・2月3日
と日付形式で設定されてしまいます。
例えば「2-3」を文字列として設定したい場合は、
「NumberFormatLocal」を使用します。
※NumberFormatでも同様のことが可能です。
※ここでは私の好みでNumberFormatLocalを使用します。
VBAコード
ここでは例として、シート「sample」上の
・セル「B2」に
・文字列として「2-3」を
設定します。
Sub sample()
With Worksheets("sample").Range("B2")
'表示形式を「文字列」にする
.NumberFormatLocal = "@"
'値を設定
.Value = "2-3"
End With
End Sub
実行結果
文字列として値を設定できました。
セルの書式設定を確認すると、表示形式が「文字列」になっていることを確認できます。
参考①
表示形式を「郵便番号」にすることもできます。
詳細は以下の記事をご確認ください。
参考②
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Rangeオブジェクト」の「NumberFormatLocal」プロパティ
備考(「NumberFormatLocal」と「NumberFormat」の違い)
値の設定方法に多少の違いがあるだけです。
どちらかが優れている/劣っているというモノではありません。
よってどちらを使用するかは好みで良いと考えます。
私はNumberFormatLocalの方が
・可読性が良い
と考えているため、こちらを使用しています。
例えば表示形式に「標準」を指定する場合、
・「General」と指定するよりも
・「G/標準」と指定した方が
「標準」を指定した旨が直感的に分かりやすいと考えているためです。