【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をコピーしました