関数・メソッド

テーブルスライサーを作成する【SlicerCaches.Add2】【Slicers.Add】【ExcelVBA】

スライサーを作成する

テーブルのフィルター機能のひとつに、スライサーというものがあります。
膨大なデータをワンクリックで絞り込むことができる便利な機能です。
ボタンひとつで操作できるので、ユーザーにも視覚的に理解しやすいものになります。

SlicerCaches.Add2メソッド でキャッシュを作成し、Slicers.Addメソッド でスライサーを配置します。

 

SlicerCaches.Add2メソッド

コレクションに新たな SlicerCacheオブジェクト を追加します。

構文
Object.Add2 (Source, SourceField, Name, SlicerCacheType)

Object SlicerCachesオブジェクト を表す変数です。
Source スライサーキャッシュの元となるデータソースです。
SourceField スライサーの対象となるフィールド名または番号を指定します。
Name 作成するスライサーキャッシュの名前です。省略すると、自動で生成されます。
SlicerCacheType スライサーキャッシュの種類を指定します。

 

Slicers.Addメソッド

新しいスライダーを作成します。

構文
Object.Add(SlicerDestination, Level, Name, Caption, Top, Left, Width, Height)

Object Slicersオブジェクトを表す変数です。
SlicerDestination スライサーを設定するシート名の値。またはシートを表す Worksheet オブジェクトを指定します。 コピー先のシートは、式で指定された Slicersオブジェクト を含むブックに含まれている必要があります。必須です。
Level OLAPデータソースの場合、スライサーの作成の基になるレベルの序数またはマルチ ディメンション式 (MDX) の名前を指定します。 OLAPデータソース以外ではサポートされていません。
Name スライサーの名前を指定します。
Caption スライサーのキャプションを指定します。
Top スライサーの垂直位置を、セルA1の左上端を基準としてポイント単位で指定します。
Left スライサーの水平位置を、セルA1の左上端を基準としてポイント単位で指定します。
Width スライサーコントロールの初期幅を、ポイント単位で指定します。
Height スライサーコントロールの初期高さを、ポイント単位で指定します。

 

スライサーを作成するサンプルコード

Public Sub Sample()
'テーブルを作成する
  Dim Tables As ListObject
  Set Tables = ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, _
                                         Source:=Range("A1:C5"), _
                                         XlListObjectHasHeaders:=xlYes)
'■スライサーを作成する
  Dim sc As SlicerCache
  Dim ws As Worksheet
  Dim sl As Slicer
    
  'シート名を指定
  Set ws = ThisWorkbook.Worksheets("Sheet1")
  '「列1」のスライサーキャッシュを作成
  Set sc = ThisWorkbook.SlicerCaches.Add2(Source:=ws.ListObjects(1), SourceField:="列1", Name:="列1")
  'スライサーを配置
  Set sl = sc.Slicers.Add(ws, , "列1スライサー", "列1", 10, 200, 150, 100)

End Sub

 

注意点

  • Slicers.Addメソッド の引数 Level は省略可能ですが、
    カンマで区切って空欄にすることで省略していることを示す必要があります。

 

関連記事

コメント