- ベストアンサー
(Excel VBA)またまた困っています・・・ o...rz
どうもrozzerです。 またもや高くそびえ立つVBの壁に激突して死にかけてしまっています・・・orz 今度は単純なマクロだと高を括っていたので鼻歌交じりでマクロを組んでいたのですが どうも如何せん上手くいきません! もう死にたいです! 現在エクセルで、とある業務で使うデータベースをマクロを組み最適化を図っています。 まず A列の2行目から任意の行に(10行までしかなかったり、1000行まであったりとランダムにあるとする)、任意の整数値があるとします。 その値の合計を、セル【B1】に表示させたいのです。 ですが、ここで問題なのですがセル【B1】に入力される式はSUM等の関数式ではなく、ただの「数値」として表示させたいのです。 つまりA列の2行目から任意の行(最終行まで)に入力されている整数値に、後々、変更があった場合に【B1】に表示されている値が、一番初めに合計の値をはじき出した値から変化しない様にしたいのです。 そして今度はセル【C1】に、A列の2行目から任意の行(最終行)までの合計値を「SUBTOTAL」関数[=subtotal(9,C1:**)]を入力したいのです。 ここまでの動作をマクロ化したいのですが、どうも如何せんどうも如何せん上手くいきません! もう死にたいです! 何卒、ご教授頂けましたら幸いで御座います。
- みんなの回答 (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 とした場合の結果も確認すること。 以上です。
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
>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 あとは上記を応用で
お礼
watabe007さん、ご回答ありがとうございます。 なるほど!Valueプロパティを使うんですね! また一つ勉強になりました! 本当になんと言っていいやら・・・。 皆さんの秀才な頭脳が本当に本当に欲しくなる今日この頃です・・・orz 一番最初にご回答頂いて尚かつ正確な情報をご教授下さったので本来ならば、良回答を差し上げさせて頂かなければならないのですが その後にご回答頂いたmyRangeさんには、前回の僕が投稿致しました質問にも、ご丁寧にご回答頂いておりましたので 今回は次点とさせていただきます。 僕のような出来損ないにご丁寧にご教授下さいまして本当に「ありがたい!」に代わる言葉がありませんです・・。 甘えてばかりで本当に恐縮ですが、また行き詰まってしまったら何卒ご教授の程、宜しくお願い致します! 本当にどうもありがとう御座います!m(_ _)m
お礼
myRangeさん、またまたご回答ありがとう御座います。 前回に続き、お世話になりっぱなしで・・本当に感謝感謝です! お昼休みになるまで試行錯誤していましたが皆さんのおかげで一気に解決致しました! こうやってまた一つ勉強になるので、皆様方が僕のご先生の様に思えてなりません。 また行き詰まってしまいましたら、ご質問させて頂くかも知れませんが、その時はまた宜しくお願い申し上げます。 甘えてばかりで本当に済みません・・・orz それではお昼ご飯を食べに行ってきます。 ・・・非常にお腹が空いて仕方がありません..orz 本当に本当にありがとう御座いました!