Sub run() '引数:並べ替えのフィールド名、対象のシート名、Pivot実データの開始Y番号,TOP幾つまでを表示するか pivot_SORT_TOP “TITLE", “Sheet4", 5, 10 End Sub 'X軸は日付など、並び替え可能な項目であること Sub pivot_SORT_TOP(CMname As String, pivot_sheet As String, Y As Long, TOP As Integer) Dim X As Long, CH As String Sheets(pivot_sheet).Select On Error Resume Next '縦の項目を一度、全部表示にする For i = 1 To ActiveSheet.PivotTables(1).PivotFields(CMname).PivotItems.Count ActiveSheet.PivotTables(1).PivotFields(CMname).PivotItems(i).Visible = True Next 'Pivotの末列の座標を探す X = 2 Do While Cells(Y – 1, X) <> “": X = X + 1: Loop X = X – 1 '横列の昇順並び替え Cells(Y – 1, 2).Select Selection.Sort Order1:=xlAscending, Type:=xlSortLabels, OrderCustom:=1, _ Orientation:=xlLeftToRight, SortMethod:=xlPinYin '並び替えたい列を選択 Cells(Y, X).Select 'Range(Chr(64 + X) & Y).Select 'X,Y座標をR1C1形式に変換 CH = “R" & Y & “C" & X '末列を降順でSORT Selection.Sort Key1:=CH, Order1:=xlDescending, Type:=xlSortValues, _ OrderCustom:=1, Orientation:=xlTopToBottom, SortMethod:=xlPinYin '表示項目がTOP指定より多い場合は、フィルター処理 If ActiveSheet.PivotTables(1).PivotFields(CMname).PivotItems.Count > TOP Then On Error Resume Next 'TOP以降は非表示する For i = TOP + 1 To ActiveSheet.PivotTables(1).PivotFields(CMname).PivotItems.Count ActiveSheet.PivotTables(1).PivotFields(CMname).PivotItems(i).Visible = False Next End If On Error GoTo 0 End Sub