FormulaArray プロパティ
FormulaArray プロパティは、対象のセル・セル範囲の配列数式(1つの数式または配列)を取得または設定します。指定したセル範囲に配列数式が含まれていないときは、Null 値を返します。
設定する値は、バリアント型(内部処理形式:String [文字列型] )を指定し、かならず、“” で囲みます。
【書式】
<取得>
result = Object.FormulaArray
<設定>
Object.FormulaArray = formula
引数・戻り値
- object ・・・ 対象となる Range オブジェクト
- formula ・・・ 数式を表す文字列を指定
- result ・・・ 取得した数式を表す文字列
FormulaArray プロパティの文字数は 255 に制限されています。
セルに通常の数式が入力されている場合は、その数式を取得します。通常の数式が入力されているのか、配列数式が入力されているのかは、HasArray プロパティで調べることができます。
ヘルプには、「配列数式として入力するときは、数式には R1C1 形式を使う必要があります。A1 形式は使えません。」と記されていますが、とりあえず、Excel 2013 では、どちらも使用できるようです(FormulaArray プロパティの使用例)。
FormulaArray プロパティの使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub Sample_FormulaArray() '配列数式を入力 'Num が偶数である値の合計値を求める(AI形式で入力) Range("C9").FormulaArray = "=SUM(IF(MOD(B3:B8,2)=0,C3:C8,""""))" 'Num が奇数である値の合計値を求める(R1C1形式で入力) Range("C10").FormulaArray = "=SUM(IF(MOD(R3C2:R8C2,2)=1,R3C3:R8C3,""""))" '配列数式を入力 Range("F2:H8").FormulaArray = "=SUM(R3C3:R8C3)" '配列数式かどうかを確認し、配列数式である場合はその数式を表示 If Range("F2").HasArray = True Then MsgBox Range("F2").FormulaArray End If End Sub |
実行結果
実行前
実行後