Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブル集計行の表示切替を行うExcelマクロ

ListObject・テーブル集計行の表示切替を行うExcelマクロ

対象:Excel2007, Excel2010, Excel2013

ListObject・テーブル集計行の表示切替を行うExcelマクロ

「vba listobject 集計行」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ListObjectオブジェクト(テーブル)の集計行に関するVBA(Visual Basic for Applications)のコードを探していた方による検索です。

ですが、
「vba listobject 集計行」
という検索キーワードだけでは、具体的に何を探していたのかがわかりません。

可能性がいくつか考えられますが、まずは、集計行の表示を切り替えるマクロをご紹介しておきます。

[スポンサードリンク]

アクティブシート上の集計行の表示を切り替えるサンプルマクロ

テーブルの存在するワークシートがアクティブな状態で以下のマクロを実行すると、ワークシート上に存在する一つ目のテーブルの集計行の表示が切り替わります。

Sub テーブルの集計行の表示を切り替える()
 With ActiveSheet.ListObjects(1)
  .ShowTotals = Not .ShowTotals
 End With
End Sub

集計行の表示状態は、ListObjectオブジェクトのShowTotalsプロパティで取得・設定することができます。

ListObject・テーブル集計行の表示切替を行うExcelマクロ

例えば、
 ActiveSheet.ListObjects(1).ShowTotals = True
というコードなら、集計行が表示され、
 ActiveSheet.ListObjects(1).ShowTotals = False
なら集計行を非表示にできます。

このTrue・Falseの切り替えをNot演算子で行っているのが、上記のマクロです。

全シートの集計行を非表示にするサンプルマクロ

以下のようなマクロにすれば、アクティブなブックのすべてのワークシート上の、すべてのテーブルの集計行を非表示にできます。

Sub 全テーブルの集計行を非表示に()
 Dim sh As Worksheet
 For Each sh In Worksheets

  Dim ls As ListObject
  For Each ls In sh.ListObjects
   ls.ShowTotals = False
  Next ls

 Next sh
End Sub

全ワークシートに対してFor Each~Nextループを回して、
 For Each sh In Worksheets

更にそのループの中で、全テーブルに対してFor Each~Nextループを回して、
  For Each ls In sh.ListObjects

ListObjectオブジェクトのShowTotalsプロパティをFalseにしています。
   ls.ShowTotals = False

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブル集計行の表示切替を行うExcelマクロ

「ListObjectオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.