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

VBA セルに関数を設定する

はじめに

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

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

  • 目次
    • セルに関数を設定する
    • セルの範囲に関数を設定する
    • 指定したシートのセルに関数を設定する

セルに関数を設定する

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

セル「A1」に関数を設定するにはRange("A1").Formulaを入力します。


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

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

行「2」、列「A」に関数を設定するにはCells(2, 1).Formulaを入力します。


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

値には Excel の数式に入力する値をそのまま設定します。

1

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

セルの範囲「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」に貼り付けしているのと同じ動作です。

同じセルを参照するように設定するには、絶対パスで指定します。


Range("A3:B4").Formula = "=SUM($A$1:$A$2)"
3

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

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

Sheet1 を指定するにはWorksheets("Sheet1")またはWorksheets(1)を入力します。

sheet1

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

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

Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表すMe.が省略されています。


' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"

標準モジュールに Range や Cells を入力すると、アクティブなシートのセルになります。アクティブシートを表すActiveSheet.が省略されています。


' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"
  • 目次
    • セルに関数を設定する
    • セルの範囲に関数を設定する
    • 指定したシートのセルに関数を設定する