• ベストアンサー

ExcelのVBAで、グループ化以外を集計したい

Excelで各シートのデータを集計する際に、 不要なデータを各シート内でグループ化して隠しています。 最終的にグループ化されていない各シートのデータを別のシートで集計したいのですが、 グループ化後に表示行全体を選択し、コピーペーストすると、 グループ化されているデータもコピーされてしまいます。 これをマクロを使って、表示されているデータのみ集計できるようにしたいのですが、 可能でしょうか? マクロの記録を使用しながら、コード書けるレベルで、 そもそも、グループ化のデータもついてきてしまうので、マクロの記録もできません。 ご教授お願いいたします。

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

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

>グループ化して隠しています をもう少し具体的に説明してほしかった。 ーーー 値だけの代入だが、同一シートの下部セル範囲に出している(注意) Sub Macro3() d = Range("A65536").End(xlUp).Row MsgBox d c = Range("Z2").End(xlToLeft).Column Range("A1:D" & d).SpecialCells(xlCellTypeVisible).Select r =d+5 For Each cl In Selection Cells(r, cl.Column) = cl If cl.Column = c Then r = r + 1 End If Next End Sub これをテスト的に実行してみて、良く考え、別シートの場合や、元シートが複数ある場合について勉強のこと。 >マクロの記録もできません これも編集ージャンプーセル選択ー可視セルのマクロの記録が役立つのだ。 ーー 「グループ化」というのが最適方法なのか、疑問あり。 もっとやりたいことを(質問者は方法を書かず)文章化して、別に関数ででも(集計結果だけで良いのなら)出来ないか、質問しては。 VBAでというのも、背伸びしすぎではないか。 こういうシートが多数あるや非表示セルの扱いなどVBAの勉強が、進んでからの課題と思う。

iwatobi7
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

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

worksheets("シート名").range("表範囲全体").specialcells(xlcelltypevisible).copy _  destination:=worksheets("Sheet2").range("A1") のように。 #参考 表範囲を選択する Ctrl+Gを押す 現れたダイアログでセル選択をクリックする 現れたダイアログで可視セルにマークしてOKする コピーする 貼り付ける。

iwatobi7
質問者

お礼

ご回答ありがとうございました。 可視セル このすばらしい機能を知らずにいました。 簡潔な回答をいただきわかりやすく、助かりました。 ありがとうございました。

関連するQ&A