Sub TEST2()
With ActiveSheet.PivotTables(1).PivotFields("点数").DataRange.Cells(1, 1)
.Group Start:=0, End:=100, By:=20 '0~100を、20刻みでグループ化
End With
End Sub
では、実行してみます。
DataRangeを使って、点数ラベルを「20」点刻みでグループ化できました。
「DataRange」を使うイメージを解説します。
DataRangeで「点数」のフィールドを取得
DataRangeを使うと点数ラベルを、全て選択できます。
Sub TEST3()
'「点数」ラベルを選択
ActiveSheet.PivotTables(1).PivotFields("点数").DataRange.Select
End Sub
VBAコードを実行してみます。
DataRangeを使うと点数ラベルをすべて選択できました。
「.Cells(1, 1)」で絞りこむと、「点数ラベル」を「1セルだけ」選択できます。
Sub TEST4()
'「点数」ラベルの、最初のセルを選択
ActiveSheet.PivotTables(1).PivotFields("点数").DataRange.Cells(1, 1).Select
End Sub
VBAコードを実行してみます。
DataRangeを使って、「点数ラベル」の「最初のセル」を選択できました。
Groupでグループ化
あとは、「Group」を使って、グループ化します。
Sub TEST5()
With ActiveSheet.PivotTables(1).PivotFields("点数").DataRange.Cells(1, 1)
.Group Start:=0, End:=100, By:=20 '0~100を、20刻みでグループ化
End With
End Sub
Sub TEST6()
With ActiveSheet.PivotTables(1).PivotFields("日付").DataRange.Cells(1, 1)
'「年」「月」「日」でグループ化'引数⇒開始日、終了日、秒、分、時、日、月、四半期、年
.Group Start:=True, End:=True, periods:=Array(False, False, False, True, True, False, True)
End With
End Sub
引数は、「開始日、終了日、秒、分、時、日、月、四半期、年」の順番になっています。
引数を、「True」にすると、入力されていた値を、そのまま使うことができます。
では、VBAコードを実行してみます。
「年」「月」「日」でグループ化できた
日付を「年」「月」でグループ化する
日付を「年」「月」でグループ化するVBAコードは、こんな感じです。
Sub TEST7()
With ActiveSheet.PivotTables(1).PivotFields("日付").DataRange.Cells(1, 1)
'「年」「月」でグループ化'引数⇒開始日、終了日、秒、分、時、日、月、四半期、年
.Group Start:=True, End:=True, periods:=Array(False, False, False, False, True, False, True)
End With
End Sub
では、VBAコードを実行してみます。
「年」「月」でグループ化できた
日付を「年」「月」でグループ化できました。
日付を「年」でグループ化する
日付を「年」でグループ化するVBAコードは、こんな感じです。
Sub TEST8()
With ActiveSheet.PivotTables(1).PivotFields("日付").DataRange.Cells(1, 1)
'「年」でグループ化'引数⇒開始日、終了日、秒、分、時、日、月、四半期、年
.Group Start:=True, End:=True, periods:=Array(False, False, False, False, False, False, True)
End With
End Sub
では、VBAコードを実行してみます。
「年」でグループ化できた
日付を「年」でグループ化できました。
Selectionで「日付」をグループ化する
Selectionを使っても同じように「日付」のグループ化ができます。
「年」「月」「日」でグループ化
日付を「年」「月」「日」でグループ化してみます。
Sub TEST9()
Range("A4").Select
'「年」「月」「日」でグループ化'引数⇒開始日、終了日、秒、分、時、日、月、四半期、年
Selection.Group Start:=True, End:=True, periods:=Array(False, False, False, True, True, False, True)
End Sub
VBAコードを実行します。
日付を「年」「月」「日」でグループ化できました。
「年」「月」でグループ化
日付を「年」「月」でグループ化します。
Sub TEST10()
Range("A4").Select
'「年」「月」でグループ化'引数⇒開始日、終了日、秒、分、時、日、月、四半期、年
Selection.Group Start:=True, End:=True, periods:=Array(False, False, False, False, True, False, True)
End Sub
VBAコードを実行します。
日付を「年」「月」でグループ化できました。
「年」でグループ化
日付を「年」でグループ化します。
Sub TEST11()
Range("A4").Select
'「年」でグループ化'引数⇒開始日、終了日、秒、分、時、日、月、四半期、年
Selection.Group Start:=True, End:=True, periods:=Array(False, False, False, False, False, False, True)
End Sub
VBAコードを実行します。
日付を「年」でグループ化できました。
VBAでピボットテーブルのグループ化を解除する
VBAで、ピボットテーブルのグループ化を「解除」してみます。
「点数」のグループ化を解除
「点数」ラベルのグループ化を解除するVBAコードは、こんな感じです。
Sub TEST12()
With ActiveSheet.PivotTables(1).PivotFields("点数").DataRange.Cells(1, 1)
.Ungroup 'グループを解除
End With
End Sub
グループ化したピボットテーブルを用意しました。
グループ化したピボットテーブル
VBAコードを実行します。
グループ化を解除できた
点数ラベルのグループ化を解除できました。
「日付」のグループ化を解除
「日付」のグループ化を解除するVBAコードは、こんな感じになります。
Sub TEST13()
With ActiveSheet.PivotTables(1).PivotFields("日付").DataRange.Cells(1, 1)
.Ungroup 'グループを解除
End With
End Sub
解除する手順は、同じですね。
グループ化したピボットテーブルを用意しました。
グループ化したピボットテーブル
VBAコードを実行します。
グループ化を解除できた
日付ラベルのグループ化を解除できました。
Selectionでグループ化を解除
ちなみに、Selectionでグループ化を解除する方法でもやってみます。
Sub TEST14()
Range("A4").Select
Selection.Ungroup 'グループを解除
End Sub