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

どうもrozzerです。
またもや高くそびえ立つVBの壁に激突して死にかけてしまっています・・・orz

今度は単純なマクロだと高を括っていたので鼻歌交じりでマクロを組んでいたのですが
どうも如何せん上手くいきません!
もう死にたいです!

現在エクセルで、とある業務で使うデータベースをマクロを組み最適化を図っています。
まず
A列の2行目から任意の行に(10行までしかなかったり、1000行まであったりとランダムにあるとする)、任意の整数値があるとします。
その値の合計を、セル【B1】に表示させたいのです。

ですが、ここで問題なのですがセル【B1】に入力される式はSUM等の関数式ではなく、ただの「数値」として表示させたいのです。

つまりA列の2行目から任意の行(最終行まで)に入力されている整数値に、後々、変更があった場合に【B1】に表示されている値が、一番初めに合計の値をはじき出した値から変化しない様にしたいのです。

そして今度はセル【C1】に、A列の2行目から任意の行(最終行)までの合計値を「SUBTOTAL」関数[=subtotal(9,C1:**)]を入力したいのです。

ここまでの動作をマクロ化したいのですが、どうも如何せんどうも如何せん上手くいきません!
もう死にたいです!

何卒、ご教授頂けましたら幸いで御座います。

A 回答 (2件)

回答は出てますが、、、



'----------------
Sub test()
 Dim myRange As Range
 Set myRange = Range("A2", Cells(Rows.Count, "A").End(xlUp))
 Range("B1").Value = WorksheetFunction.Sum(myRange)
 Range("C1").Formula = "=SUBTOTAL(9," & myRange.Address(0, 0) & ")"
End Sub
'----------------

myRange.Address(0, 0) を
myRange.Address     とした場合の結果も確認すること。

以上です。
    • good
    • 0
この回答へのお礼

myRangeさん、またまたご回答ありがとう御座います。
前回に続き、お世話になりっぱなしで・・本当に感謝感謝です!
お昼休みになるまで試行錯誤していましたが皆さんのおかげで一気に解決致しました!
こうやってまた一つ勉強になるので、皆様方が僕のご先生の様に思えてなりません。
また行き詰まってしまいましたら、ご質問させて頂くかも知れませんが、その時はまた宜しくお願い申し上げます。
甘えてばかりで本当に済みません・・・orz

それではお昼ご飯を食べに行ってきます。
・・・非常にお腹が空いて仕方がありません..orz
本当に本当にありがとう御座いました!

お礼日時:2010/02/23 12:26

>A列の2行目から任意の行に(10行までしかなかったり、1000行まであったりと


>ランダムにあるとする)、任意の整数値があるとします。
>その値の合計を、セル【B1】に表示させたいのです。
With Range("B1")
  'B1セルに=SUM(A2:A最終行)とSUM関数を記述
  .Formula = "=SUM(A2:A" & Cells(Rows.Count, "A").End(xlUp).Row & ")"
  'SUM関数を値に変換
  .Value = .Value
End With
あとは上記を応用で
    • good
    • 0
この回答へのお礼

watabe007さん、ご回答ありがとうございます。
なるほど!Valueプロパティを使うんですね!
また一つ勉強になりました!
本当になんと言っていいやら・・・。
皆さんの秀才な頭脳が本当に本当に欲しくなる今日この頃です・・・orz
一番最初にご回答頂いて尚かつ正確な情報をご教授下さったので本来ならば、良回答を差し上げさせて頂かなければならないのですが
その後にご回答頂いたmyRangeさんには、前回の僕が投稿致しました質問にも、ご丁寧にご回答頂いておりましたので
今回は次点とさせていただきます。
僕のような出来損ないにご丁寧にご教授下さいまして本当に「ありがたい!」に代わる言葉がありませんです・・。
甘えてばかりで本当に恐縮ですが、また行き詰まってしまったら何卒ご教授の程、宜しくお願い致します!
本当にどうもありがとう御座います!m(_ _)m

お礼日時:2010/02/23 12:19

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