Excel VBAのFormula プロパティについて
Formula
プロパティは、Excel VBAにおいてセルまたはセル範囲の数式を取得したり設定したりするためのプロパティです。文字列型の値を取り、設定可能です。
Formula プロパティの基本的な使用方法
以下に Formula
プロパティの基本的な使用方法を示します。
Sub setFormula()
' A1セルに数式を設定します
Range("A1").Formula = "=SUM(B1:B10)"
End Sub
上記のサンプルコードでは、Formula
プロパティを使用して、セルA1に数式「=SUM(B1:B10)」を設定します。数式は文字列として指定します。
Formula プロパティを使った動的なサンプルコード
次に、Formula プロパティを使った動的なサンプルコードを示します。
Sub setDynamicFormula()
Dim i As Integer
' A1からA10までのセルに、それぞれ異なる数式を設定します
For i = 1 To 10
Cells(i, 1).Formula = "=SUM(B" & i & ":B" & (i+10) & ")"
Next i
End Sub
上記のサンプルコードでは、A1からA10までの各セルに対して、異なる範囲のSUM数式を設定します。Forループと連結演算子 (&) を使用して、動的に数式の範囲を生成しています。
Formula
プロパティを使って数式を設定するときには、数式の文字列内にダブルクオーテーション(“)が必要な場合に注意が必要です。VBAでは、文字列をダブルクオーテーションで囲むため、数式内にダブルクオーテーションが必要な場合(例えば、IF関数など)は、連続した2つのダブルクオーテーションを使って表現します。
Sub setFormulaWithDoubleQuotes()
' A1セルにIF関数の数式を設定します
Range("A1").Formula = "=IF(B1>10, ""Yes"", ""No"")"
End Sub
上記のサンプルコードでは、セルA1に「=IF(B1>10, “Yes”, “No”)」という数式を設定します。数式内の “Yes” と “No” はダブルクオーテーションで囲む必要がありますので、VBAのコード内では連続した2つのダブルクオーテーションを使って表現します。