- ベストアンサー
エクセルの集計で総計を表示しないようにするには?
エクセルの集計した表を印刷しています。 「グループごとに改ページを挿入する」を選び、それぞれの合計が印刷されるのは良いのですが、総計も一緒に印刷されてしまいます。 総計の行を印刷(表示)されないようにしたいのですが・・・ エクセル2000を使用しています。 古いバージョンなので現在と変わっているかもしれませんが、よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
> 早速試したところ、「コンパイルエラー」「名前付き引数が見つかりません。」とでてきました。 なるほど、VBEのバージョンが・・ってことでしょうか。 では、記録したものを支障無い範囲でマージ。 Sub Macro1() ' ' Macro1 Macro 改 ' マクロ記録日 : 2012/10/29 ユーザー名 : ***** ' ' Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _ Replace:=True, PageBreaks:=True, SummaryBelowData:=True Cells.Find(What:="総計", LookAt:=xlPart).Activate Selection.EntireRow.Delete Range("A1").Select End Sub これでどうでしょう。 できなかったら・・さっきの私の回答の手順で記録して試してみてくださいませ。
その他の回答 (5)
- tsubuyuki
- ベストアンサー率45% (699/1545)
横入り失礼します。 > 省力化のためマクロの自動記録機能を考えておりました。 > (マクロに詳しくないので自動記録です。) 踏まえまして > 総計も一緒に印刷されてしまいます。 > 総計の行を印刷(表示)されないようにしたいのですが・・・ の部分を「総計行を行削除したら良い」と言う発想で記録しました。 A1~C2000にデータが、A列に集計の単位(グループの基準)、 C列に集計するフィールド(合計)を持っているとして、やったことは順番に ・A列で昇順ソート(念のため) ・シートの先頭(A1セル)にフォーカス移動 (ソートした後の範囲選択状態を解除したかったので) ・集計(A列基準・C列合計) ・検索機能(Ctrl+F)で、“総計”と言う文字列を含むセルにフォーカス移動 ・選択されたセルを含む行全体を削除 ・A1セルにフォーカス移動(なんとなくですが) 以上です。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2012/10/29 ユーザー名 : ***** ' ' Range("A1").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _ xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal Range("A1").Select Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _ Replace:=True, PageBreaks:=True, SummaryBelowData:=True Cells.Find(What:="総計", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Activate Selection.EntireRow.Delete Range("A1").Select End Sub 処理ごとに改行を入れていますが、それ以外は基本的に録ったままです。 記録したのは2003ですから、列数の考慮は必要でしょうが、 2000でも同じような記録がそちらでもできるはずです。 参考までにどうぞ。
補足
アドバイスありがとうございます。 早速試したところ、「コンパイルエラー」「名前付き引数が見つかりません。」とでてきました。 DataOption1:= のところが反転しています。 こちらで試したエクセルファイルはA1~c200で下記のようなファイルです。 受注番号 商品名 数量 123 aaa 2 123 bbb 4 ------------- 156 ccc 4
- keithin
- ベストアンサー率66% (5278/7941)
マクロで行うつもりなら、マクロに総計行を削除させてしまった方が後腐れなくていいです。 たとえば「A列を基準にC列を合計で集計する」みたいなのをマクロの記録すると、だいたいこんなカンジのが録れます。(集計するまでのマクロは、このご相談とは全く無関係なのでフォローはしません) Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2012/10/28 ユーザー名 : ' ' Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _ Replace:=True, PageBreaks:=True, SummaryBelowData:=True End Sub この続きに「グループ列で最終行を調べ、その行を消去する」と書き足します。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2012/10/28 ユーザー名 : ' ' Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3), _ Replace:=True, PageBreaks:=True, SummaryBelowData:=True range("A65536").end(xlup).entirerow.delete End Sub >もう少し分かりやすくご説明いただけませんでしょうか? 先の回答でお話しした通り、あなたの表の具体的なレイアウトの情報が何もないので、これ以上詳しいご説明はできません。 回答を見ながら実際にエクセルを動かし、ご自分の手を動かしてみて、それでも出来なかったのでしょうか。 いずれにしてもマクロにやらせてしまえば、面倒な事はしなくてすみます。
- TammyG3
- ベストアンサー率30% (34/111)
>総計の行を印刷(表示)されないようにしたいのですが 1番カンタンなのは、「非表示」にすることです。 鎌倉 曽野蜩
お礼
アドバイスありがとうございます。 日々のデータを基に集計して、毎日印刷をしております。 省力化のためマクロの自動記録機能を考えておりました。 (マクロに詳しくないので自動記録です。) 表を作成した後になるべく手直しの手間が省ければと思い相談しました。
- keithin
- ベストアンサー率66% (5278/7941)
こんにちは。 集計の操作を行った時に、総計行をそもそも挿入「させない」方法はありません。 総計行は要らないということなら、総計の行を単純に選んでDeleteキーで消してしてしまうのが、一番手っ取り早い方法です。 手を動かせないという事なら、あなたの表の具体的なレイアウトが判りませんので具体的な操作の手順は割愛しますが 方法1:推奨 条件付き書式を使い、グループの基準列に「総計」と記入されている行はフォントの色を白くして、目に見えないよう仕込みます 方法2: 集計を挿入した後、表全体を選択して「印刷範囲の設定」を行うと、名前の定義の中に「Print_Area」という名前が発生します 総計行はこの一番下の行なので、Print_Areaの名前定義で一行減らした表範囲を自動計算させて与えてやれば、総計行だけ印刷範囲から除外して印刷させなくできます。 #流石にこれじゃ出来ないでしょうから 例えば表が一行目をタイトル行として2行目からぎっちり詰まっているとして 集計の操作後、印刷範囲の設定を行い、挿入メニューの名前で定義を確認してみると 名前 Print_Area 参照範囲 =Sheet1!$A$1:$I$122 などのようになっていたとして(122行目が今現在の総計行) たとえばB列がグループの基準列で上から(1行目から)122行目まで空白なく詰まっているとして 名前の定義のダイアログボックスでPrint_Areaを選び 名前 Print_Area 参照範囲 =OFFSET(Sheet1!$A$1,0,NOW()*0,COUNTA(Sheet1!$B:$B)-1,9) のように書き換えてOKします
お礼
アドバイスありがとうございます。 日々のデータを基に集計して、毎日印刷をしております。 省力化のためマクロの自動記録機能を考えておりました。 (マクロに詳しくないので自動記録です。) 表を作成した後になるべく手直しの手間が省ければと思い相談しました。 方法1はなるほど、と思いました。自動記録に組み入れて見ます。 方法2でお聞きしたいのですが、 最初のPrint_Areaで参照範囲 =Sheet1!$A$1:$I$122 となっているものを参照範囲 =OFFSET(Sheet1!$A$1,0,NOW()*0,COUNTA(Sheet1!$B:$B)-1,9) と書き換えるとの部分が理解できませんでした。 もう少し分かりやすくご説明いただけませんでしょうか? 大変お手数をお掛けいたします。
- shorun
- ベストアンサー率42% (133/310)
エクセル2000を使用していないので具体的な操作手順はわかりませんが 回答が付かないのでおじやまします。 考え方としては その1 総計行以外の部分を選択して、印刷対象の指定を「選択した部分」にして印刷する。 その2 印刷する時のみ、総計行の文字色を用紙と同じ色「白」などにして印刷する。 更にスマートな回答が出ることをいのります。
お礼
アドバイスありがとうございます。 日々のデータを基に集計して、毎日印刷をしております。 省力化のためマクロの自動記録機能を考えておりました。 (マクロに詳しくないので自動記録です。) 表を作成した後になるべく手直しの手間が省ければと思い相談しました。
お礼
tsubuyukiさん、出来ました。 本当にありがとうございます!!! マクロを勉強したいと思います。