Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1057 / 13645 ツリー ←次へ | 前へ→

【76564】平均また回帰分析の範囲の指定方法について 15/1/6(火) 18:05 質問[未読]
【76565】Re:平均また回帰分析の範囲の指定方法につ... ウッシ 15/1/7(水) 16:19 回答[未読]
【76566】Re:平均また回帰分析の範囲の指定方法につ... 15/1/7(水) 22:10 お礼[未読]
【76567】Re:平均また回帰分析の範囲の指定方法につ... 15/1/7(水) 22:12 質問[未読]
【76569】Re:平均また回帰分析の範囲の指定方法につ... ウッシ 15/1/8(木) 10:22 回答[未読]
【76575】Re:平均また回帰分析の範囲の指定方法につ... 15/1/10(土) 1:27 お礼[未読]
【76576】Re:平均また回帰分析の範囲の指定方法につ... γ 15/1/10(土) 11:01 発言[未読]

【76564】平均また回帰分析の範囲の指定方法につい...
質問    - 15/1/6(火) 18:05 -

引用なし
パスワード
   貼り付けたデータについてVBAで平均を算出したいのですが、その範囲選択について
悩んでいます。

Range("E3").Select
 ActiveCell.Formula = "=AVERAGE(C2:C61)"

現在、上記のような状態で、このC61の部分をCの数字が入っている最終列または Aの最終列と同じ行までという選択したいのですがどうすればよいでしょうか?

また同様に回帰分析でも以下のような状況でB、Cそれぞれの最終列までの範囲選択をしたくて悩んでいます。
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$C$1:$C$57"), _
    ActiveSheet.Range("$B$1:$B$57"), False, True, , ActiveSheet.Range("$E$10") _
    , False, False, False, False, , False

ご指導よろしくお願いします。

【76565】Re:平均また回帰分析の範囲の指定方法に...
回答  ウッシ  - 15/1/7(水) 16:19 -

引用なし
パスワード
   ▼治 さん:

こんにちは

  Range("E3").Formula = "=AVERAGE(C2:" & Range("C" & Rows.Count).End(xlUp).Address(0, 0, xlA1, False) & ")"

こういう事でしょうか?

【76566】Re:平均また回帰分析の範囲の指定方法に...
お礼    - 15/1/7(水) 22:10 -

引用なし
パスワード
   ウッシさん
ご指摘いただいたのようにマクロを組んだらうまくいきました!ありがとうございます。
End(x|up)やRows.Countの知識自体はあったのですがどのように組み込んでいいか
解らなかったので勉強になります。

【76567】Re:平均また回帰分析の範囲の指定方法に...
質問    - 15/1/7(水) 22:12 -

引用なし
パスワード
   ただ回帰分析については
似たようにマクロを組んでもエラーとなりうまくいかず未だに困っています。

以下のような状況でB、Cそれぞれの最終列までの範囲選択を行おうと思っています。
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$C$1:$C$57"), _
    ActiveSheet.Range("$B$1:$B$57"), False, True, , ActiveSheet.Range("$E$10") _
    , False, False, False, False, , False

引き続きご指導いただけると大変助かります。

【76569】Re:平均また回帰分析の範囲の指定方法に...
回答  ウッシ  - 15/1/8(木) 10:22 -

引用なし
パスワード
   こんにちは

セル範囲を取得してセットします。

Sub test()
  Dim bArea As Range
  Dim cArea As Range
  Dim eArea As Range
  
  With ActiveSheet
    Set bArea = .Range("B1", .Range("B" & .Rows.Count).End(xlUp))
    Set cArea = bArea.Offset(, 1)
    Set eArea = .Range("E10")
  End With
  Application.Run "ATPVBAEN.XLAM!Regress", cArea, _
      bArea, False, True, , eArea _
      , False, False, False, False, , False

End Sub

【76575】Re:平均また回帰分析の範囲の指定方法に...
お礼    - 15/1/10(土) 1:27 -

引用なし
パスワード
   なるほど事前に範囲を指定してやればいいのですね、思いつきませんでした。
大変勉強になります、ウッシさんありがとうございました!

【76576】Re:平均また回帰分析の範囲の指定方法に...
発言  γ  - 15/1/10(土) 11:01 -

引用なし
パスワード
   横から失礼。

事前に範囲を作成しておくかどうかは本質ではありません。
(そのほうがきれいであることはもちろんですが)

Endの使いかたは分かっていても、Range(セル、セル)という
書き方が自分のものになっていなかったからじゃないですか?

セルの指定方法はExcelVBAのポイントですから、例えば下記のような
記事を参考に、じっくりマスターされることをお勧めします。

セル範囲の指定方法
ht tp://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell.html

1057 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free