MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > SPREADコントロール > スライサーの使用 |
Spread for WinFormsは、ワークシートにてスライサー(ビジュアルフィルタ)の使用を対応します。スライサーを使用すると、ドロップダウンリストを使用せず、テーブルのデータをすばやくフィルタできます。
ユーザーが、スライサーの複数の「コピー」を作成することで異なるワークシートで同時に動作させることができます。キーボードショートカットの「Ctrl +クリック」または「Shift +クリック」を使用して項目を選択するか、複数の項目をドラッグしてフィルタ項目を含めると、特定の要件に従ってその項目のデータがレポートに表示されます。
ワークシートにスライサーを追加するには、最初にEnhancedShapeEngine プロパティの値をtrueに設定して、新しいシェイプエンジンを有効にする必要があります。その後、ISlicerCaches インタフェースのAdd()メソッドを使用するか、テーブル上にクリックしてリボンバーでの[挿入]ボタンをクリックすると、ワークシートにスライサーを追加できます。
スライサーは、ヘッダー、キャプション、スライサー項目およびクリアボタンで構成されます。 次の図は、ワークシートに追加されているスライサーを示します。
次のサンプルコードは、スプレッドシートにスライサーを追加する方法を示します。
C# |
コードのコピー
|
---|---|
// スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。 fpSpread1.Features.EnhancedShapeEngine = true; // スライサーを追加します。 private static void AddSlicer(IWorkbook WorkBook, IWorksheet WorkSheet) { // ワークシートのデータを初期化します。 WorkSheet.Cells[0, 0].Text = "Name"; WorkSheet.Cells[0, 1].Text = "City"; WorkSheet.Cells[0, 2].Text = "Weight"; WorkSheet.Cells[1, 0].Text = "Bob"; WorkSheet.Cells[1, 1].Text = "NewYork"; WorkSheet.Cells[1, 2].Value = 80; WorkSheet.Cells[2, 0].Text = "Betty"; WorkSheet.Cells[2, 1].Text = "Chicago"; WorkSheet.Cells[2, 2].Value = 72; WorkSheet.Cells[3, 0].Text = "Alice"; WorkSheet.Cells[3, 1].Text = "Washington"; WorkSheet.Cells[3, 2].Value = 71; // テーブルを作成します。 ITable table = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes); // 列インデックスを使用してSlicerCacheを追加します。 ISlicerCache slicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache"); // SlicerCacheにスライサーを追加します。 ISlicer slicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200); } |
Visual Basic |
コードのコピー
|
---|---|
'スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。 fpSpread1.Features.EnhancedShapeEngine = True 'スライサーを追加します。 Private Shared Sub AddSlicer(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet) 'ワークシートのデータを初期化します。 WorkSheet.Cells(0, 0).Text = "Name" WorkSheet.Cells(0, 1).Text = "City" WorkSheet.Cells(0, 2).Text = "Weight" WorkSheet.Cells(1, 0).Text = "Bob" WorkSheet.Cells(1, 1).Text = "NewYork" WorkSheet.Cells(1, 2).Value = 80 WorkSheet.Cells(2, 0).Text = "Betty" WorkSheet.Cells(2, 1).Text = "Chicago" WorkSheet.Cells(2, 2).Value = 72 WorkSheet.Cells(3, 0).Text = "Alice" WorkSheet.Cells(3, 1).Text = "Washington" WorkSheet.Cells(3, 2).Value = 71 'テーブルを作成します。 Dim table As ITable = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes) '列インデックスを使用してSlicerCacheを追加します。 Dim slicerCache As ISlicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache") 'SlicerCacheにスライサーを追加します。 Dim slicer As ISlicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200) End Sub |
ワークシートに 複数のスライサーを追加するには、ISlicerCaches インタフェースのAdd()メソッドを使用します。次の図は、複数のスライサーが追加されたスプレッドシートを示します。
次のサンプルコードは、スプレッドシートに複数のスライサーを追加する方法を示します。
C# |
コードのコピー
|
---|---|
// スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。 fpSpread1.Features.EnhancedShapeEngine = True private static void AddMultipleSlicer(IWorkbook WorkBook, IWorksheet WorkSheet) { // ワークシートのデータを初期化します。 WorkSheet.Cells[0, 0].Text = "Name"; WorkSheet.Cells[0, 1].Text = "City"; WorkSheet.Cells[0, 2].Text = "Weight"; WorkSheet.Cells[1, 0].Text = "Bob"; WorkSheet.Cells[1, 1].Text = "NewYork"; WorkSheet.Cells[1, 2].Value = 80; WorkSheet.Cells[2, 0].Text = "Betty"; WorkSheet.Cells[2, 1].Text = "Chicago"; WorkSheet.Cells[2, 2].Value = 72; WorkSheet.Cells[3, 0].Text = "Alice"; WorkSheet.Cells[3, 1].Text = "Washington"; WorkSheet.Cells[3, 2].Value = 71; // テーブルを作成します。 ITable table = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes); // 列インデックスを使用してSlicerCacheを追加します。 ISlicerCache slicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache"); // SlicerCacheにスライサーを追加します。 ISlicer slicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200); // 列名を使用して別のSlicerCacheを追加します。 ISlicerCache slicerCache2 = WorkBook.SlicerCaches.Add(table, "City", "slicerCache2"); // 別のSlicerCacheに別のスライサーを追加します。 ISlicer slicer2 = slicerCache2.Slicers.Add(WorkSheet, "slicer2", "City", 410, 20, 200, 200); } |
Visual Basic |
コードのコピー
|
---|---|
'スライサーの機能を使用するには、EnhancedShapeEngineプロパティを使用してシェイプエンジンを有効にします。 fpSpread1.Features.EnhancedShapeEngine = True Private Shared Sub AddMultipleSlicer(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet) ' ワークシートのデータを初期化します。 WorkSheet.Cells(0, 0).Text = "Name" WorkSheet.Cells(0, 1).Text = "City" WorkSheet.Cells(0, 2).Text = "Weight" WorkSheet.Cells(1, 0).Text = "Bob" WorkSheet.Cells(1, 1).Text = "NewYork" WorkSheet.Cells(1, 2).Value = 80 WorkSheet.Cells(2, 0).Text = "Betty" WorkSheet.Cells(2, 1).Text = "Chicago" WorkSheet.Cells(2, 2).Value = 72 WorkSheet.Cells(3, 0).Text = "Alice" WorkSheet.Cells(3, 1).Text = "Washington" WorkSheet.Cells(3, 2).Value = 71 'テーブルを作成します。 Dim table As ITable = WorkSheet.Tables.Add("A1:C4", YesNoGuess.Yes) '列インデックスを使用してSlicerCacheを追加します。 Dim slicerCache As ISlicerCache = WorkBook.SlicerCaches.Add(table, 0, "slicerCache") SlicerCacheにスライサーを追加します。 Dim slicer As ISlicer = slicerCache.Slicers.Add(WorkSheet, "slicer", "Name", 200, 20, 200, 200) '列名を使用して別のSlicerCacheを追加します。 Dim slicerCache2 As ISlicerCache = WorkBook.SlicerCaches.Add(table, "City", "slicerCache2") '別のSlicerCacheに別のスライサーを追加します。 Dim slicer2 As ISlicer = slicerCache2.Slicers.Add(WorkSheet, "slicer2", "City", 410, 20, 200, 200) End Sub |
ISlicerItemインタフェースのSelected プロパティを使用することにより、スライサー項目の選択状態を切り替えることができます。
次のサンプルコードは、スプレッドシートにスライサー項目を選択する方法を示します。
C# |
コードのコピー
|
---|---|
private static void Filter(IWorkbook WorkBook) { WorkBook.SlicerCaches[0].SlicerItems["Bob"].Selected = false; WorkBook.SlicerCaches[0].SlicerItems["Betty"].Selected = true; WorkBook.SlicerCaches[0].SlicerItems["Alice"].Selected = false; } |
Visual Basic |
コードのコピー
|
---|---|
Private Shared Sub Filter(ByVal WorkBook As IWorkbook) WorkBook.SlicerCaches(0).SlicerItems("Bob").Selected = False WorkBook.SlicerCaches(0).SlicerItems("Betty").Selected = True WorkBook.SlicerCaches(0).SlicerItems("Alice").Selected = False End Sub |
別法としては、複数選択モードを有効にするには、キーボードショートカットの「Ctrl +クリック」または「Alt+S」を使用します。次に、特定の領域をクリックして、選択した項目のデータを除外できます。複数のスライサー項目を選択するには、スライサーの最初項目をクリックし、マウスポインターを最後の項目に向かってドラッグします。
データ項目をすべて表示するには、ISlicerCacheインタフェースのClearAllFilters()、ClearManualFilter()、およびClearDateFilter()メソッドを使用することにより、スライサーのフィルタを削除します。代わりに、スライサーの右上にある[フィルタのクリア]ボタンやキーボードショートカットの「Alt + C」を使用する方法もあります。
次のサンプルコードは、スプレッドシートからスライサーのフィルタを削除する方法を示します。
C# |
コードのコピー
|
---|---|
private static void ClearFilter(IWorkbook WorkBook) { // スライサーからすべてのフィルタを削除します。 WorkBook.SlicerCaches[0].ClearAllFilters(); } |
Visual Basic |
コードのコピー
|
---|---|
Private Shared Sub ClearFilter(ByVal WorkBook As IWorkbook) 'スライサーからすべてのフィルタを削除します。 WorkBook.SlicerCaches(0).ClearAllFilters() End Sub |
スライサーの設定を変更するには、ISlicerインタフェースのCaptionプロパティとISlicerCacheインタフェースのSortItemsプロパティを使用します。
次の図は、キャプション、並べ替え順序(名前が降順で表示される)が変更されたスライサーを示します。
次のサンプルコードは、 スプレッドシートでスライサーの設定を変更する方法を示します。
C# |
コードのコピー
|
---|---|
private static void ModifySlicerSetting(IWorkbook WorkBook, IWorksheet WorkSheet) { // キャプション名を変更します。 WorkSheet.Slicers["slicer"].Caption = "Name Changed"; // 並べ替え順序を変更します。 WorkBook.SlicerCaches["slicerCache"].SortItems = SlicerSort.Descending; } |
Visual Basic |
コードのコピー
|
---|---|
Private Shared Sub ModifySlicerSetting(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet) 'キャプション名を変更します。 WorkSheet.Slicers("slicer").Caption = "Name Changed" '並べ替え順序を変更します。 WorkBook.SlicerCaches("slicerCache").SortItems = SlicerSort.Descending End Sub |
スライサーの書式設定を変更するには、ISlicer インタフェースのNumberOfColumnsプロパティで列数、Widthプロパティでスライサー幅、Heightプロパティでスライサーの高さ、ColumnWidthプロパティで列幅、RowHeightプロパティで行高、およびDisplayHeaderプロパティでヘッダーの表示状態を設定することができます。
次の図は、カスタム書式が設定されているスライサーを示します。
次のサンプルコードは、スプレッドシートにスライサーの書式設定を変更する方法を示します。
C# |
コードのコピー
|
---|---|
private static void ChangeSlicerFormatting(IWorksheet WorkSheet) { // スライサーの書式設定を変更します。 WorkSheet.Slicers["slicer"].NumberOfColumns = 2; WorkSheet.Slicers["slicer"].Width = 250; WorkSheet.Slicers["slicer"].Height = 150; WorkSheet.Slicers["slicer"].ColumnWidth = 100; WorkSheet.Slicers["slicer"].RowHeight = 70; WorkSheet.Slicers["slicer"].DisplayHeader = false; } |
Visual Basic |
コードのコピー
|
---|---|
Private Shared Sub ChangeSlicerFormatting(ByVal WorkSheet As IWorksheet) 'スライサーの書式設定を変更します。 WorkSheet.Slicers("slicer").NumberOfColumns = 2 WorkSheet.Slicers("slicer").Width = 250 WorkSheet.Slicers("slicer").Height = 150 WorkSheet.Slicers("slicer").ColumnWidth = 100 WorkSheet.Slicers("slicer").RowHeight = 70 WorkSheet.Slicers("slicer").DisplayHeader = False End Sub |
スライサーのスタイルをカスタマイズするには、ITableStyleインタフェースのShowAsAvailableSlicerStyle プロパティをtrueに設定し、カスタムスタイルを定義してスライサーに適用します。
次の図は、スプレッドシートでカスタムのフォントスタイル、フォントサイズ、およびフォント色が設定されたスライサーを示します。
次のサンプルコードは、スプレッドシートでスライサーのスタイルをカスタマイズする方法を示します。
C# |
コードのコピー
|
---|---|
private static void CustomizeSlicerStyle(IWorkbook WorkBook, IWorksheet WorkSheet) { // スライサーにカスタムスタイルを設定します。 ITableStyle slicerStyle = WorkBook.TableStyles.Add("CustomStyle1"); // カスタムスタイルをSlicerに設定するには、ShowAsAvailableSlicerStyleをtrueに設定します。 slicerStyle.ShowAsAvailableSlicerStyle = true; slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Name = "Arial"; slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Bold = true; slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Italic = true; slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Size = 20; slicerStyle.TableStyleElements[TableStyleElementType.SelectedItemWithData].Font.Color = GrapeCity.Spreadsheet.Color.FromThemeColor(GrapeCity.Core.ThemeColors.Accent3); WorkSheet.Slicers["slicer"].Style = slicerStyle; } |
Visual Basic |
コードのコピー
|
---|---|
Private Shared Sub CustomizeSlicerStyle(ByVal WorkBook As IWorkbook, ByVal WorkSheet As IWorksheet)' 'スライサーにカスタムスタイルを設定します。 Dim slicerStyle As ITableStyle = WorkBook.TableStyles.Add("CustomStyle1") 'カスタムスタイルをSlicerに設定するには、ShowAsAvailableSlicerStyleをtrueに設定します。 slicerStyle.ShowAsAvailableSlicerStyle = True slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Name = "Arial" slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Bold = True slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Italic = True slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Size = 20 slicerStyle.TableStyleElements(TableStyleElementType.SelectedItemWithData).Font.Color = GrapeCity.Spreadsheet.Color.FromThemeColor(GrapeCity.Core.ThemeColors.Accent3) WorkSheet.Slicers("slicer").Style = slicerStyle End Sub |
スプレッドシートからスライサーを削除するには、ISlicerインタフェースのDelete() メソッドを使用します。
また、スライサーのキャッシュとそのすべてのスライサーを削除する場合は、ISlicerCache インタフェースのDelete()メソッドを使用します。
次のサンプルコードは、スプレッドシートからスライサーを削除する方法を示します。
C# |
コードのコピー
|
---|---|
private static void DeleteSlicer(IWorkbook WorkBook) { // スライサーを削除します。 WorkBook.SlicerCaches["slicerCache"].Slicers["slicer"].Delete(); } |
Visual Basic |
コードのコピー
|
---|---|
Private Shared Sub DeleteSlicer(ByVal WorkBook As IWorkbook) 'スライサーを削除します。 WorkBook.SlicerCaches("slicerCache").Slicers("slicer").Delete() End Sub |