「ABCDEFGHI」のデータを
「ABCABCABCDEFDEFDEFGHIGHIGHI」にする。
①連続させたいグループごとに番号を振る
②連続させたい数分コピーする
③番号列を基準に並び替えを行う
①フィルターを設定する
「フィルターで並び替えを行う①」を参照
②マクロを使えるようにする
「マクロを使えるようにする」を参照
③並び替え用のボタンを配置
④ボタン配置時の以下の画面で「マクロ名」を「TitleAsc」として「新規作成」を押す
⑤「Microsoft Visual Basic for Applications」にて以下のコードを記載
'最終行の取得 Dim lastRow As Integer: lastRow = Cells(Rows.Count, 1).End(xlUp).Row ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear '2列目の5行目から最終行に対して昇順のソート ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Add2 Key:=Range(Cells(5, 2), Cells(lastRow, 2)), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
⑥ボタンの名前を変更する
⑦降順のボタンを作成
ボタンを配置し、「マクロ名」を「TitleDesc」とする
コードは以下のようにする(「Order:=xlDescending」の部分が違うのみ)
'最終行の取得 Dim lastRow As Integer: lastRow = Cells(Rows.Count, 1).End(xlUp).Row ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Clear '2列目の5行目から最終行に対して降順のソート ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort.SortFields.Add2 Key:=Range(Cells(5, 2), Cells(lastRow, 2)), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With