VBA セルの値の取得、設定、変更
In this Article
このチュートリアルでは、VBAを使用してセルの値を操作する方法について説明します。
セルの値を設定する
セルの値を設定するには、RangeまたはCellsオブジェクトのValueプロパティを使用します。
Range.ValueとCells.Value
VBAでセル(複数可)を参照する方法は2つあります。
- Rangeオブジェクト – Range(“A2”).Value
- Cellsオブジェクト – Cells(2,1).Value
Range オブジェクトでは、標準的な “A1” 表記でセルを参照することができます。 これは、範囲A2の値= 1を設定します。
Range("A2").Value = 1
Cellsオブジェクトは、行番号と列番号でセルを参照することができます。 これは、範囲A2の値 = 1を設定します。
Cells(2,1).Value = 1
行番号を最初に入力することに注意してください。
Cells(Row_num, Col_num)
複数のセルの値を一度に設定する
1つのセルを参照する代わりに、複数のセルの範囲を参照して、すべてのセルの値を一度に変更することができます。
Range("A2:A5").Value = 1
セルの値 – テキストを設定する
上記の例では、セルの値を、数値の1に設定しています。 代わりに、セルの値をテキストの文字列に設定することができます。 VBAでは、すべてのテキストを引用符で囲む必要があります。
Range("A2").Value = "テキスト"
テキストを引用符で囲まない場合、VBAは変数を参照しているとして処理します。
セルの値 – 変数を設定する
セルの値に変数を設定することもできます。
Dim strText as String
strText = "テキスト文字列"
Range("A2").Value = strText
セルの値を取得する
セルの値を取得するには、上記と同じValueプロパティを使用します。
アクティブセルの値を取得する
アクティブセルの値を取得し、メッセージボックスに表示します。
MsgBox ActiveCell.Value
セルの値を変数に代入する
セルの値を取得し、変数に代入します。
Dim var as Variant
var = Range("A1").Value
ここでは、Variant型の変数を使用しています。Variant型変数は、どんな型の値でも受け入れることができます。 代わりに、文字列型変数を使うこともできます。
Dim var as String
var = Range("A1").Value
文字列型変数は数値を受け取ることもできますが、その際、数値はテキストとして保存されます。 セルの値が数値であることが分かっている場合は、Double型(倍精度浮動小数点型)変数を使用することができます。(Double変数は小数値を格納することができます。)
Dim var as Double
var = Range("A1").Value
しかし、テキストを含むセル値をDouble変数に格納しようとすると、型の不一致エラーが発生します。
その他のセル値の例
セルの値をコピーする
セルの値を他のセルの値に代入する(または、セルの値を「コピー」する)のは簡単です。
Range("A1").Value = Range("B1").Value
セルの範囲を指定することもできます(範囲は同じ大きさである必要があります)。
Range("A1:A5").Value = Range("B1:B5").Value
セルの値を比較する
標準的な比較演算子を使って、セルの値を比較することができます。 早速セルの値が等しいかどうかをテストしてみましょう。
MsgBox Range("A1").Value = Range("B1").Value
セルの値が等しい場合、TRUEが返され、そうでない場合は FALSE を返します。 また、Ifステートメントを作成して、セルの値を比較することもできます。
If Range("A1").Value > Range("B1").Value Then
Range("C1").Value = "よりも大きい"
Elseif Range("A1").Value = Range("B1").Value Then
Range("C1").Value = "と等しい"
Else
Range("C1").Value = "よりも小さい"
End If
同じ方法で、テキストを比較することができます(VBAは大文字と小文字を区別することを忘れないでください)。