教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】セルに数式を入力(Formula)する方法を教えて!

構文

構文は以下の通りです。

Range("セル範囲").Formula = "数式"

解説

Formulaは、セルに直接数式を入力する代わりに、VBAコードを使って数式を自動的に埋め込むことができるのです。数学的な演算子(+、-、*、/など)や関数(SUM、AVERAGE、IFなど)を含めることができます。セル範囲には、数式を記述したい対象のセルを指定します。数式は文字列として記述され、数学的な計算やセルの参照を行うための式となります。

使い方

以下に使い方の具体例を紹介します。

1. シンプルな数式の設定

セルに簡単な数式を設定する例です。

Sub SimpleFormulaExample()
    ' セルA1に数式「=2+3」を設定
    Range("A1").Formula = "=2+3"
End Sub

上記のコードを実行すると、セルA1に数式「=2+3」が設定されます。セルには計算結果の「5」が表示されるでしょう。

2. セルの参照を含む数式の設定

他のセルの値を参照して計算する例です。

Sub CellReferenceExample()
    ' セルB1とC1に値を設定
    Range("B1").Value = 10
    Range("C1").Value = 5
    ' セルA1に数式「=B1+C1」を設定
    Range("A1").Formula = "=B1+C1"
End Sub

このコードを実行すると、セルA1に数式「=B1+C1」が設定され、セルA1には計算結果の「15」が表示されます。

プログラミング例

条件分岐を使って、セルに設定する数式を切り替える例を紹介します。

Sub ConditionalFormulaExample()
    Dim numA As Integer
    Dim numB As Integer
    Dim formula As String
    ' 条件によって使う数式を決定
    numA = 5
    numB = 10
    If numA > numB Then
        formula = "=A1+B1"
    Else
        formula = "=A1-B1"
    End If
    ' セルC1に数式を設定
    Range("C1").Formula = formula
End Sub

上記のコードを実行すると、numAがnumBより大きい場合はC1に「=A1+B1」が、そうでない場合は「=A1-B1」が設定されます。

まとめ

Formulaは、セルに数式を動的に設定するための便利なプロパティです。数学的な演算や他のセルの値を参照して計算することができるため、より高度な処理を自動化することができます。是非活用してください。