VBAのマクロに関する質問です。

average("A2:A5") に相当する平均値の計算をしたいのです。average(cells(なんどか),cells(なんどか))というように、cells で平均値の計算をする範囲を指定したいのですが、どうするといいのでしょうか?
シートで計算するときは簡単なので、VBAでも簡単に同じようなことをしたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/06/08 16:30:01
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ootatmt No.1

回答回数1307ベストアンサー獲得回数65

ポイント60pt

ワークシート関数を使うには、WorksheetFunctionオブジェクトを使います。

myAve = Application.WorksheetFunction.Average(Cells(Y1, X1), Cells(Y2, X2))

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_ws_kansu.html

id:kaiketsu

range で囲めば動きますね。動作確認しました。

2009/06/08 16:12:51

その他の回答1件)

id:ootatmt No.1

回答回数1307ベストアンサー獲得回数65ここでベストアンサー

ポイント60pt

ワークシート関数を使うには、WorksheetFunctionオブジェクトを使います。

myAve = Application.WorksheetFunction.Average(Cells(Y1, X1), Cells(Y2, X2))

http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_ws_kansu.html

id:kaiketsu

range で囲めば動きますね。動作確認しました。

2009/06/08 16:12:51
id:jccrh1 No.2

回答回数111ベストアンサー獲得回数19

ポイント10pt

VBAからEXCELの関数を呼び出せば良いです。

 

平均 = WorksheetFunction.Average(Range("A2:A4"))

 

ダミーURL http://q.hatena.ne.jp/1244442466

id:kaiketsu

cells 使いたいのです。

2009/06/08 16:02:35
  • id:ootatmt
    あー、ちょっと質問文を読み間違えていたかもしれません。
    最後の括弧の中を以下のようにしてもらえれば、"A2:A5"と同等となります。
    Range(Cells(1, 2), Cells(1, 5))
  • id:taknt
    ワークシート関数を使えば まったく同じ(笑)
  • id:jccrh1
    平均 = WorksheetFunction.Average(Range("A2:A5"))
      または
    平均 = WorksheetFunction.Average(Range(Cells(2, 1), Cells(5, 1)))
       
    です。
  • id:ootatmt
    jccrh1さん

    Cells の引数が逆ですよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません