単一のセルの場合は、はるかに簡単です。デフォルトの Cells() 関数を使用します。
Cells(1,1) = "hello world"
またはシートの Cells() 関数を使用します。
Dim sht as Worksheet
Set sht = Sheets("myworksheet") ' or: = Sheets(1)
sht.Cells(1,1) = "hello world"
範囲については、ここに記載されている他の回答で説明されているように、2 つのパラメーターを使用する必要があります。ただし、フィールドの範囲全体を値に設定できるという利点があります。また、「アクティブなシート」ではないシートで、舞台裏で作業することもできます。例えば:
Const colRand = 4
Const colDiff = 5
Dim sht as Worksheet, rngHi As Range, rngRand As Range, rngDiff As Range
Set sht = Sheets("myworksheet") ' or: = Sheets(1)
Set rngHi = sht.Range(sht.Cells(1,1), sht.Cells(3,3)
rngHi = "hello world"
Set rngRand = sht.Range(sht.Cells(1,colRand), sht.Cells(8,colRand) ' column 4, rows 1-8
rngRand = "=RAND()"
Set rngDiff = sht.Range(sht.Cells(2,colDiff), sht.Cells(8,colDiff) ' column 5, rows 2-8
' using FormulaR1C1 in case the sheet isn't set to use that type of formula
Set rngDiff.FormulaR1C1="=RC[-1] - R[-1]C[-1]" ' on previous columnn, diff between this row and previous row
説明:
Cells 関数は
、文字列パラメーター- A1_And_Colon スタイル範囲を指定するか、
または2 つの Cell パラメーター- 範囲の開始セルと終了セルのいずれかを受け取ります。
したがって、「セル」で範囲を設定するには、両方のセルをカンマで区切る必要があります。
Range(Cells(1,1), Cells(1,1)) = "hello world"
Range(Cells(2,2), Cells(3,4)) = "you cannot square around, but you can round a square"
Sheets(1).Cells(5,5) = "=Round(Sqrt(5))"