関数・メソッド

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

スライサーを作成する

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

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

 

SlicerCaches.Add2メソッド

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

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

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

 

Slicers.Addメソッド

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

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

ObjectSlicersオブジェクトを表す変数です。
SlicerDestinationスライサーを設定するシート名の値。またはシートを表す Worksheet オブジェクトを指定します。 コピー先のシートは、式で指定された Slicersオブジェクト を含むブックに含まれている必要があります。必須です。
LevelOLAPデータソースの場合、スライサーの作成の基になるレベルの序数またはマルチ ディメンション式 (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 は省略可能ですが、
    カンマで区切って空欄にすることで省略していることを示す必要があります。

 

関連記事

コメント

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