VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
Update 2018/12/10
Next Tips>
VBAでセル操作をするには2種類の方法があります。
1つは Cells を使用する方法、もう1つは Range を使用する方法です。
Cells は主として、単一のセルを選択して操作し、Rangeは、セルを範囲で選択して操作をするのに使用します。
ここでは以下について説明します。
Cells は以下の書式で、任意のセルを指定することができます。
Cells(行番号, 列番号)
セルを指定したら、Selectメソッドを使用して選択します。
例えば、B1セルを選択したい場合は以下のようにします。
'B1セルの選択
Cells(1, 2).Select
'以下のようにも指定可能
Cells(1,"B").Select
Range は以下の書式で、任意のセルを指定することができます。
Rabge("セル")
セルを指定したら、Selectメソッドを使用して選択します。
例えば、B1セルを選択したい場合は以下のようにします。
'B1セルの選択
Range("B1").Select
Range を使用することで、範囲選択をすることができます。
Cellsでは範囲を指定することはできないので注意してください。
Rangeでの範囲指定は以下の書式を使用します。
Range("選択開始セル:選択終了セル") または Range("選択開始セル","選択終了セル")
セルを指定したら、Selectメソッドを使用して選択します。
例えば、A1からD5の範囲を選択したい場合は以下のようにします。
Range("A1:D5").Select
Range("A1", "D5").Select
'以下のように範囲をCellsで指定することもできる
Range(Cells(1, 1), Cells(5, 4)).Select
行と列を指定して値を取得するには以下の書式を使用します。
Cells(行, 列).Value
例えば、B1のセルの値を取得するには以下のようにします。
MsgBox Cells(1, 2).Value
セル名を指定して値を取得するには以下の書式を使用します。
Range("セル名").Value
例えば、B1のセルの値を取得するには以下のようにします。
MsgBox Range("B1").Value
アクティブなセルの値は以下で取得することができます。
MsgBox ActiveCell.Value
セルを範囲指定して値を取得するには以下の書式を使用します。
Range("選択開始セル:選択終了セル").Value または Range("選択開始セル","選択終了セル").Value
取得した値は(行, 列)の2次元配列になります。
例えば、以下のようにA1からC2まで値が入っている場合で見てみましょう。
以下のコードでA1からC2までの範囲を取得してウォッチ式で参照した結果を示します。
Dim data As Variant data = Range("A1:C2").Value
行と列を指定して値を設定するには、以下の書式を使用します。
Cells(行, 列).Value = 値
以下はB1のセルに「あいうえお」を設定します。
Cells(1,2).Value = "あいうえお"
列名を指定して値を設定するには、以下の書式を使用します。
Range(列名).Value = 値
以下はB1のセルに「あいうえお」を設定します。
Range("B1").Value = "あいうえお"
指定範囲に値を設定するには、以下の書式を使用します。
Range("範囲").Value = 配列 または Range("選択開始セル","選択終了セル").Value = "配列"
1行の範囲に設定する例を以下に示します。
'1行に設定する場合
Dim data1D(2) As String
data1D(0) = "A"
data1D(1) = "B"
data1D(2) = "C"
Range("A1:C1").Value = data1D
複数行の範囲に設定する例を以下に示します。
'複数行に設定する場合
Dim data2d(1, 1) As String
data2d(0, 0) = "A3"
data2d(0, 1) = "B3"
data2d(1, 0) = "A4"
data2d(1, 1) = "B4"
Range("A3:B4").Value = data2d
セルに数式を設定するには、以下の書式を使用します。
expression.Formura = 値
expressionには、ActiveCellやRannge, Cellなどを指定します。
以下はD1のセルに「=A1*B1」という式を設定します。
Range("D1").Formula = "=A1*B1"
実行例を以下に示します。
D1のセルに「=A1*B1」という式が設定されて、計算されていることがわかります。