• ベストアンサー

エクセルのマクロ(SUBTOTAL関数)について。

お世話になります。 エクセルのマクロ(SUBTOTAL関数)について ご指導願います。 (F37)から(F?)の一つ上の行までを小計する。 といった数式はどのようになるのでしょうか? F?は貼り付ける表によって最後Fの列番号が 変わりますので。 自分の作業予定では、下記マクロを登録したいの ですが。 表を貼り付ける。ここから作業する下記マクロ登録。 オートフィルタ機能を使う。 F?の列だけを、抽出し、そこに一つ上の行ま でを小計する数式を入れる。(←ここの数式が分かりません。) その値をJ27に反映させる。 どうすればいいのかお教え願いますでしょうか? よろしく御願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

オートフィルタで絞り込む前に数式を記入し,それから絞り込みます。 作成例: sub macro1()  dim r as long ’ご質問の回答は次の1行です  range("F65536").end(xlup).offset(1).formular1c1 = "=SUBTOTAL(3, R37C:R[-1]C)" ’以下は既にアナタの方で作成済みのオートフィルタを取り付けるマクロを使いますので不要ですがサンプルです   r = range("F65536").end(xlup).row -1  range("A37:F" & r).autofilter field:=6, criteria1:="何某"   range("J27").value = cells(r + 1, "F").value  activesheet.autofiltermode = false end sub

fasdsfa
質問者

お礼

ありがとうございました。 処理できました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>マクロ(SUBTOTAL関数) マクロといっていながら、関数の質問のような説明である。 ーー マクロならば、今後エクセルVBAの質問と書いてください。読者によくわかる。「マクロの記録」という言葉はあるもののエクセルでは、「エクセルVBA」という言葉が主流。 ーー セル範囲(F列とか)の一部の連続セル範囲を合計したいのだろうが 始点ーー固定したセルか?F37と書くとそう見える。 終点ーー多分一番下のセル。これを特徴付ける事態・データ状態は何か? それを書かないで質問しても質問にならない。確信がないなら変に関数や式を持ち出さないで、自分の捕らえた、特徴を質問で文章で説明すべきだ。 例 その列の最終行まで。   例えば 「靜岡支店計」とセルに入っているその前の行まで。   例えば「靜岡支店」から「浜松支店」に換わる兆区全行まで     あるいは支店名ごとのF列の計数を支店別に集計したいとか(本質問はこれに近いのかな)  そうなら本質問の表現と随分違うだろう。エクセルなどになれて、質問表現も定石的な聞き方があることを勉強して。  本質問コーナーの質問を数ヶ月ぐらい見て勉強すればわかるが。 ーーー 他にエクセルでは、データー集計・・という操作が在る。 どういうときに使えるものか勉強して。 ーー オートフィルタ、フィルタオプションの設定、集計とも、「マクロの記録」が採れるからそれを取れば一応コードがどうなるか 判る。 別のロジックでやる方法もあるが、質問者にはそこまで行って無いでしょう。

fasdsfa
質問者

お礼

分かりにくく、申し訳ございません。 エクセルも含め、質問の仕方から勉強させていただきます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

一つ上の行までの関数でしたら次のようになりますね。 =SUBTOTAL(9,F$37:INDIRECT("F"&ROW()-1))

fasdsfa
質問者

お礼

ありがとうございます。 使わせていただきます。