「みんな教えて! 選手権!!」開催のお知らせ

Excelで多項式近似( a3・x^3 + a2・x^2 + a1・x + b)の係数を求める数式

a3 = INDEX(LINEST(TRANSPOSE(E3:I3),TRANSPOSE(E2:I2)^{3,2,1}),1,3)

を、VBAでプログラミングするときの記述の仕方について教えて頂けませんか?
このとき、アドレス範囲(E3:I3)は、(Cells(i,j), Cells(k,l))のように変数化できるのでしょうか?

以上です。よろしくお願い致します。

質問者からの補足コメント

  • 一つの手法として、変数iを使って文字列で式を作成する方法

    Range("A3").Formula="=INDEX(LINEST(TRANSPOSE(E" & i & ":I" & i & "),TRANSPOSE(E2:I2)^{3,2,1}),1,3)"

    を教えて頂いたのですが、プログラムを作成して動作させると、確かに該当セルに数式が入るのですが#VALUEとなります。
    手操作で、式の最後にSIFT、CTRL、ENTERとすると、式の両端に{ =式 }が入りきちんと動作するようです。
    この方法の場合、プログラム作成時なにが足りないのでしょうか?

    基本的なご質問ばかりで恐縮ですがよろしくお願い致します。

      補足日時:2015/11/21 04:07

A 回答 (1件)

こんにちは。



おそくなってすみません。何度もこの質問をみて、質問の意味がやっと分かりました。(^^;
初歩的な内容だと思いますが、

Range("A3").Formula="=INDEX(LINEST(TRANSPOSE(E" & i & ":I" & i & "),TRANSPOSE(E2:I2)^{3,2,1}),1,3)"

>手操作で、式の最後にSIFT、CTRL、ENTERとすると、式の両端に{ =式 }が入りきちんと動作するようです。

[Shift+Ctrl - Enter]
これを「配列確定」と呼んでいますが、これを入れるためには、

Range("A3").FormulaArray =.....

というプロパティを使います。試してみてください。
    • good
    • 0
この回答へのお礼

WindFallerさん
ご回答ありがとうございました。
FormulaArrayで、動作確認できました。
助かりました。
あかり2016

お礼日時:2015/11/23 12:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報