Home 第二章 VBAからみたセル操作


4. Value


Valueは、指定したセルに、値(文字・数値)を設定します。

  1. Range("E4").FormulaR1C1 = "VBA" ですが、
    上の説明から、本来はFormulaR1C1でなくValueを使用します。
    Range("E4"). Value = "VBA" が正しい記述です。
    FormulaR1C1は数式に使用するのですが、
    自動登録マクロでは、値(文字・数値)は、全てFormulaR1C1で記録されてしまいます。

  2. 文字は "VBA" ダブルコーテーションで文字をくくります。

  3. 数値は ダブルコーテーションは不要です。
    Range("E4"). Value = 123456789

  4. ""ダブルコーテーションだけだと空白になります。
    Range("E4"). Value = ""

  5. ""ダブルコーテーションの変わりに Empty という特別な単語も使用できます。
    Range("E4"). Value = Empty

    Value と FormulaR1C1(Formula)を使い分ける理由(その1)
    自動登録では「値」も「数式」も、すべてFormulaR1C1で登録されてしまうが、
    動作に問題があるわけではありません。
    その1の理由としては、コード内容を理解する上「値」と「数式」につ
    両者を使い分けたほうが、後々のために良いということです。


    サンプルファイル 2_004_Value.xls
    セルの操作方法としていくつかサンプルを載せてありますので、参考にして下さい。

    記述例
    '----------------------------------------------------------------

    Sub A_01()
      Range("E5").Value = "Excel VBA"
    End Sub
    '----------------------------------------------------------------

    Sub A_02()
      Range("E5").Value = "" '空白文字
    End Sub
    '----------------------------------------------------------------

    Sub A_03()
      Range("E5").Value = 12345
    End Sub
    '----------------------------------------------------------------

    Sub A_04()
      Selection.Value = "Excel VBA"
    End Sub

    '----------------------------------------------------------------
    Sub A_05()
      ActiveCell.Value = "VBA"
    End Sub
    '----------------------------------------------------------------

    Sub A_06()
      Cells.Value = "" '全てのセルの内容を空白にします
    End Sub
    '----------------------------------------------------------------
    Sub PlusA001()
      Range("E5,F7").Value = "XYZ"
    End Sub
    '----------------------------------------------------------------

    Sub PlusA002()
      Range("E5,F7").Value = Empty
    End Sub
    '----------------------------------------------------------------

    Sub PlusA003()
      Range("E1:G3,F5:H7").Value = 1
    End Sub
    '----------------------------------------------------------------

    Sub PlusA004()
      Range("E1:G3,F5:H7").ClearContents
    End Sub
    '----------------------------------------------------------------

    Sub PlusA005()
      Cells.ClearContents '全てのセルの内容をクリアーにします
    End Sub
    '----------------------------------------------------------------

    Sub PlusA006()
      ActiveCell.Value = 2000
    End Sub
    '----------------------------------------------------------------

    Sub PlusA007()
      Selection.Value = 2000
    End Sub
    '----------------------------------------------------------------

    Top