データの入力


セルはRangeオブジェクトで表されます。Rangeオブジェクトを特定するには、一般的に次の2つのプロパティを使います。

  • Rangeプロパティ
  • Cellsプロパティ

Rangeプロパティは「Range("A2")」とアドレスを指定します。一方のCellsプロパティは「Cells(2,1)」のように行番号と列番号を指定します。指定する順序は「Cells(行番号,列番号)」です。

セルにデータを入力するには、このRangeオブジェクトのValueプロパティにデータを代入します。次のコードは、セルA2に123という数値を入力します。

Sub Sample1()
    Range("A2").Value = 123
End Sub

また、数値や文字列など単純なデータを入力する場合は、Valueプロパティを省略しても入力できます。次のコードは、セルA2に「田中」という文字列を入力します。

Sub Sample2()
    Cells(2, 1) = "田中"
End Sub

Rangeオブジェクトはプロパティを省略すると、Valueプロパティが指定されたものと認識します。データの入力だけでしたら、この「Rangeオブジェクト = データ」という書き方を覚えておけばいいでしょう。

ちなみに、次のようにセル範囲を指定すると、複数のセルに同じデータを同時に入力できます。

Sub Sample3()
    Range("A2:A5") = 100
End Sub

複数のセルに数式を入力すると、セルの位置に合わせて、数式内のアドレスが自動的に調整されます。

Sub Sample4()
    Range("B2:B5") = "=A2*2"
End Sub

なお、セルに数式を入力する件については、下記のページで詳しく解説します。

数式の入力

数値を文字として入力する

たとえば、次のコードはセルA2に「0123」という文字列を入力します。

Sub Sample5()
    Range("A2") = "0123"
End Sub

ところが実行すると、セルA2には「123」という数値が入力されてしまいました。これは、手作業でキーボードから操作しても同じ結果になります。Excelは、入力されたデータが数値として認識できるときは、自動的に数値として扱うという特徴があるのです。Sample4のように「0123」という文字列を入力したい場合には、データを入力する前にセルの表示形式を「文字列」に設定しておくか、次のように接頭辞を含めて代入します。

Sub Sample6()
    Range("A2") = "'0123"
End Sub

数値の前の「'」が接頭辞です。接頭辞は、この後に続くデータの形式を示す特殊な記号です。「'」は後のデータが文字列であることを表しています。入力されたデータの先頭に「'」が付くのを嫌う人は、セルの表示形式を設定してください。セルの表示形式を設定する方法は、下記のページで解説します。

表示形式の設定