プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっています

可変な範囲を変数で取得して、合計を計算できるでしょうか

  A  B C D
 1   5
 2   8
 3   3
 4   7
 5    <-----ここ 「B5」に合計値を出したい

但し、データが可変するので常に「B5」とは限らず「B7」等の時もある

これをマクロで自動取得してそのデータの下に合計を出したいのですが
お願いいたします。

(”合計”・"H行番号" ・"L行番号")を変数として取得。。。。。

Range("合計").Formula = "=sum(B & H行番号 : B & L行番号)"

なんてのを実行したのですが、当然のことながらダメでした。

A 回答 (3件)

こんな感じでどうでしょうか。

B列の例です。

Sub SumSet()
  Dim strRetu As String '列名
  Dim endRow As Long '最終行

  strRetu = "B"
  '最終行を求める
  endRow = Range(strRetu & "65536").End(xlUp).Row

  '算式をセットする
  Range(strRetu & (endRow + 1)).Formula = _
          "=SUM(" & strRetu & "1:" & strRetu & endRow & ")"
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます

>Range(strRetu & (endRow + 1)).Formula = _
>    "=SUM(" & strRetu & "1:" & strRetu & endRow & ")"

なるほど、「" "」の使い方が不適切だったみたいですね

なんとか出来そうです。
感謝します。

お礼日時:2002/08/19 01:08

どこからどこまでの範囲の合計をどこに表示するか


指定しないとだめですが
その指定をするならSUM関数でやったほうが早いと思いますけど
だめなのでしょうか?
答えを表示したいセルをクリックして「オートサム」をクリックして
合計を求めたい範囲をドラッグしてエンター押せば簡単に出ると
思うのですが

もしもこれでだめなら補足をください
C列もB列と同じ行番号間の合計を出したいとか
もう少し具体例お願いします
そしたら、また回答しますので

この回答への補足

説明不足で申し訳ありません

>答えを表示したいセルをクリックして「オートサム」をクリックして
>合計を求めたい範囲をドラッグして

はいその通りなんですけど・・・

表作成が下手なんでしょうか
合計を求めたいセル位置が項目ごとに数十もあるので、手作業だと大変で

列位置は同じなのですが
合計を求める行位置が下に延々と続いているものですから
それらを一気にマクロで処理できないものかと考えています。

範囲取得は、以前教えて頂いた
Set 範囲 = ActiveCell.CurrentRegion

この構文等を利用して何とか出来るのですが
可変範囲の合計を求める処でツマズイテしまいました

補足日時:2002/08/19 00:28
    • good
    • 0

B2より計数が入るとして


Sub test01()
dim y as Long
y = Worksheets("Sheet1").Range("b2").CurrentRegion.Rows.Count
Cells(2 + y, 2) = Application.WorksheetFunction.Sum(Range(Cells(2, 2), Cells(y + 1, 2)))
End Sub
強制改行されるかも知れないが、dimとY=とcells(..)=
の3行です。
    • good
    • 0
この回答へのお礼

御礼が遅れて申し訳ありません

:nishi6 様 と違って当該セルにSUM()関数式が入らないんですね
すごい!!

こんなマクロもあるんなんて、本当にこのサイトの皆様には感心させられっぱなし
です。

このマクロを分解して勉強してみます
ありがとうございました。

お礼日時:2002/08/19 21:41

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