Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】並べ替え(Excel 2007以降)

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の5分勉強の内容

 

 

********************************************************

Excel 2007 以降の並べ替え

・並べ替えに指定できるキーが3→64に増えた

・文字色、背景色、条件付き書式のアイコンで並べ替えができるようなった

・Sort オブジェクト、SortField オブジェクトが実装された

※Sort・・・分類、種類

 

                      

f:id:tuna-kichi:20200816144820p:plain

列Bの昇順で並べ替えをマクロの記録で記録すると・・・

 

Sub Macro2()
'
' Macro2 Macro

① ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
② ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("B2"), _
  SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  With ActiveWorkbook.Worksheets("Total").Sort
   .SetRange Range("A2:C9")
   .Header = xlNo
   .MatchCase = False
   .Orientation = xlTopToBottom
   .SortMethod = xlPinYin
   .Apply
  End With
End Sub

 

①前回の条件は残っているので、削除し、新たに条件を追加する

Key・・・基準となる列(行)を、Range/Cellsオブジェクトで指定する(必須)

 

 SortOn・・・並べ替えのタイプを指定する(省略可)

 xlSortOnValues   データで並べ替える(既定値)
 xlSortOnCellColor   背景色で並べ替える
 xlSortOnFontColor   文字色で並べ替える
 xlSortOnIcon   条件付き書式のアイコンで並べ替える 

 

 Order・・・昇順か降順を指定する(省略可)

 xlAscending   昇順 (既定値) 
 xlDescending   降順 

 

 DataOption・・・数値と文字列の数値が混在していた時の
         並べ方を指定する(省略可)

 xlSortNormal  数値と文字列を別々に並べる(既定値) 
 xlSortTextAsNumbers   文字列を数値とみなし並べる 

 

※③は明日。

 

・Activeworkbookで、グラフのシートが無く、
 SortOn, Order, DataOption は既定値で良ければ、
 ①,②の記述は以下のように簡略化できる

 

With Sheets("Sheet1").Sort.SortFields
  .Clear
  .Add2 Key:=Range("B2")
End With

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/