Excel VBAでは、通常の数式と同様に、**配列数式(CSE数式)**もプログラムからセルに入力することが可能です。
配列数式とは、複数の値に対して一括で演算処理を行い、結果を1つのセルや複数セルに出力する特殊な数式のことを指します。
この記事では、VBAの .FormulaArray プロパティを使って、セルに配列数式を設定する方法を詳しくご紹介いたします。
目次
配列数式をセルに入力するVBAコード
Sub SetArrayFormula()
    Range("H3").FormulaArray = "=SUM(D3:D5*E3:E5*F3:F5)"
End Sub
説明:
Range("H3"):配列数式を設定するセルです。.FormulaArray:そのセルに対して配列数式を入力するためのプロパティです。=SUM(D3:D5*E3:E5*F3:F5):3つの列に対応する要素同士を掛け算し、その合計を求める数式です。- 数式全体を ダブルクォーテーションで囲み、等号から始める 必要があります。
 
通常の数式と配列数式の違い
| 種類 | VBAプロパティ | 対応するExcel入力 | 複数要素演算の対応 | 
|---|---|---|---|
| 通常の数式 | .Formula | =A1+B1 | 単一の演算式 | 
| 配列数式 | .FormulaArray | =SUM(A1:A3*B1:B3)(Ctrl+Shift+Enter) | 要素ごとの演算可 | 
配列数式に関する注意点
- 1つのセルに対して 
.FormulaArrayを設定する場合、数式の結果も1つの値に限られます。 - VBAでは Ctrl+Shift+Enter を使わずとも、
.FormulaArrayを使うだけで配列数式として処理されます。 .FormulaArrayは 255文字の制限があるため、長い数式の場合は.Formulaを使った工夫が必要なこともあります。
配列数式の実行例(手動操作と比較)
Excel操作での入力:
- セルに 
=SUM(D3:D5*E3:E5*F3:F5)と入力 Ctrl + Shift + Enterを押すことで配列数式として確定
VBA操作での入力:
上記のコードを実行するだけで、配列数式として入力されます
まとめ|配列数式の自動入力には FormulaArray を活用
Excel VBAで配列数式をセルに入力するには、.FormulaArray プロパティを使用します。
この方法を使えば、手動で Ctrl + Shift + Enter を押す必要がなく、複雑な掛け算や合計処理を自動化できます。
ただし、以下のような点には注意が必要です。
.FormulaArrayは1セルまたは1ブロックにしか入力できません(多セル展開は不可)- 数式の文字列は255文字までに制限されており、長文ではエラーになる可能性があります
 - 動的な範囲や条件を扱いたい場合は、
Evaluate関数や通常の.Formulaを併用することも検討すべきです 
配列数式を正しく活用すれば、複数の値を対象にした演算処理をスマートに実行でき、業務の効率化にもつながります。
