【VBA】シート上のテーブルにスライサーを作成する

VBAで
 ・シート上のテーブルに
 ・スライサーを作成
できます!

スライサー
スライサー

スライサーは
 ・オートフィルタをより便利にしたモノ
です!

スライサーもオートフィルタも
 ・データを絞るためのモノ
です!

スライサーの方がデータを
 ・どのように絞っているのか
 ・視覚的に分かりやすい
です!

PR

VBAコード

ここでは例として
 ・シート「data」上のテーブル「productテーブル」に
 ・商品名のスライサーを作成
します。

シート「data」上のテーブル「productテーブル」
Option Explicit

Sub setSlicer()
    
    Dim sheet As Worksheet
    Dim table As ListObject
    Dim slicerRange As range
    Dim slicerCache As slicerCache
    Dim slicer As slicer
    
    'テーブルが存在するシート
    Set sheet = Worksheets("data")
    
    '作成するスライサーの配置位置とするセルを指定
    Set slicerRange = sheet.range("F2:G7")
    
    '作成するスライサーのシート上のテーブルを取得
    Set table = sheet.ListObjects("productテーブル")
    
    'スライサーキャッシュ(スライサー設定情報)を取得
    Set slicerCache = ThisWorkbook.SlicerCaches.Add(table, "商品名")
    
    'スライサーを作成
    Set slicer = slicerCache.Slicers.Add(sheet, _
                                         top:=slicerRange.top, _
                                         left:=slicerRange.left, _
                                         Width:=slicerRange.Width, _
                                         Height:=slicerRange.Height)
                                        
End Sub

スライサーを配置位置としてセル「F2~G7」を指定しています(15行目)。
※状況に応じて任意で変更してください。

「ThisWorkbook」により、「Workbookオブジェクト」を取得しています(21行目)。

「Workbookオブジェクト」の「SlicerCaches」プロパティにより、「SlicerCachesオブジェクト」を取得しています(21行目)。

「SlicerCachesオブジェクト」の「Add」メソッドにより、「SlicerCacheオブジェクト」を取得しています(21行目)。
※「Add」メソッドの2つ目の引数は「テーブルの項目名」を指定します。上記では「商品名」を指定しています。

「SlicerCacheオブジェクト」の「Slicers」プロパティにより、「Slicersオブジェクト」を取得しています(24行目)。

「Slicersオブジェクト」の「Add」メソッドにより、スライサーを作成しています(24行目)。

PR

実行結果

シート上のテーブルにスライサーを作成できました。

スライサーを作成
スライサーを作成


例えば「りんご」をクリックすると、シート上のテーブルが「りんご」で絞られます。

「りんご」で絞った結果
「りんご」で絞った結果
PR

参考①

上記のVBAコードで使用した以下の詳細については、公式サイトをご確認ください。

●「Workbookオブジェクト」の「SlicerCaches」プロパティ


●「SlicerCachesオブジェクト」の「Add」メソッド


●「SlicerCacheオブジェクト」の「Slicers」プロパティ


●「Slicersオブジェクト」の「Add」メソッド

PR

参考②

シート上の表をテーブル化する方法は、以下の記事をご確認ください。

タイトルとURLをコピーしました