【VBA入門】セルに配列数式を入力する方法|FormulaArrayの使い方と注意点

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 を使うだけで配列数式として処理されます。
  • .FormulaArray255文字の制限があるため、長い数式の場合は .Formula を使った工夫が必要なこともあります。

配列数式の実行例(手動操作と比較)

Excel操作での入力:

  1. セルに =SUM(D3:D5*E3:E5*F3:F5) と入力
  2. Ctrl + Shift + Enter を押すことで配列数式として確定

VBA操作での入力:

上記のコードを実行するだけで、配列数式として入力されます


まとめ|配列数式の自動入力には FormulaArray を活用

Excel VBAで配列数式をセルに入力するには、.FormulaArray プロパティを使用します。
この方法を使えば、手動で Ctrl + Shift + Enter を押す必要がなく、複雑な掛け算や合計処理を自動化できます。

ただし、以下のような点には注意が必要です。

  • .FormulaArray は1セルまたは1ブロックにしか入力できません(多セル展開は不可)
  • 数式の文字列は255文字までに制限されており、長文ではエラーになる可能性があります
  • 動的な範囲や条件を扱いたい場合は、Evaluate 関数や通常の .Formula を併用することも検討すべきです

配列数式を正しく活用すれば、複数の値を対象にした演算処理をスマートに実行でき、業務の効率化にもつながります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次