サイトについて      連絡先   検索

VBA セルに関数を設定する

はじめに

Excel VBA のセルに関数を設定する方法を紹介します。

Range.Formula プロパティか Cells.Formula プロパティでセルに関数を設定できます。

セルに関数を設定する

Range の引数にセル名を指定するとそのセルに関数を設定できます。

セル「A1」に関数を設定するには Range("A1").Formula のように指定します。

設定する値は Excel の数式の値を文字列で設定します。

1
Range("A3").Formula = "=SUM(A1:A2)"

Cells の引数にセルの行と列の番号を指定すると、そのセルに値を設定できます。

行「2」、列「A」に値を設定するには Cells(2, 1).Formula のように指定します。

Cells(3, 1).Formula = "=SUM(A1:A2)"

セルの範囲に関数を設定する

セルの範囲「A3」~「B4」に関数を設定するには Range("A3:B4").Formula または Range("A3", "B4").Formula のように指定します。

Range("A3:B4").Formula = "=SUM(A1:A2)"
Range("A3", "B4").Formula = "=SUM(A1:A2)"
2

画像からわかるようにセル「A3」を基準にして関数が設定されています。これはセル「A3」をコピーして「A3」~「B4」に貼り付けしているのと同じ動作です。

それぞれのセルに同じ関数を設定するには FormulaArray を使用します。

Range("A3:B4").FormulaArray = "=SUM(A1:A2)"
3

指定したシートのセルに関数を設定する

Range.Formula とコードに書くと、アクティブなシートのセルに関数を設定します。これは ActiveSheet.Range.Formula の ActiveSheet が省略されています。

' どちらも同じコード
Range("A3").Formula = "=SUM(A1:A2)"
ActiveSheet.Range("A3").Formula = "=SUM(A1:A2)"

シートを指定するには Sheets の引数にシート名またはインデックスを指定します。

1

Sheet1 のシートを指定するには、Sheets("Sheet1") か Sheets(1) と書きます。

Dim s As String
' Sheet1 のセル「A3」に関数を設定
Sheets("Sheet1").Range("A3").Formula = "=SUM(A1:A2)"
Sheets(1).Range("A3").Formula = "=SUM(A1:A2)"

' Sheet2 のセル「A3」に関数を設定
Sheets("Sheet2").Range("A3").Formula = "=SUM(A1:A2)"
Sheets(2).Range("A3").Formula = "=SUM(A1:A2)"

関連ページ