【VBA】表示形式を「文字列」にして、セルに値を設定する

例えばセルに値を設定する際に、単純に
 ・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

実行結果

文字列として値を設定することが出来ました。

備考(「NumberFormatLocal」と「NumberFormat」の違い)

値の設定方法に多少の違いがあるだけです。

例) 表示形式に「標準」を指定する場合
  • NumberFormat・・・・・・”General”を指定
  • NumberFormatLocal・・・・”G/標準”を指定

どちらかが優れている/劣っているというモノではありません。
よってどちらを使用するかは好みで良いと考えます。

私はNumberFormatLocalの方が可読性が良いと思うため、こちらを使用することにします。

表示形式に「標準」を指定する際に、”General”よりも”G/標準”の方が直感的に分かりやすいと思うためです。

タイトルとURLをコピーしました