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
を併用することも検討すべきです
配列数式を正しく活用すれば、複数の値を対象にした演算処理をスマートに実行でき、業務の効率化にもつながります。