次のコードは、表をA列を基準に昇順でデータで並べ替えるマクロである。空欄に入る適切な語句を解答しなさい。
Sub Exam1()
With sheets("Sheet1"). 【 ① 】
.【 ⓶ 】.Clear
.【 ⓶ 】. Add2 Key:=Range("A2"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
.SetRange Range(”A1:D11”)
.Header = xlYes
.Apply
End With
End Sub
正解
【 ① 】sort
【 ② 】sortfields
解説
本問題はエクセル2007年以降のデータの並び替えの問題です。2007年以降のデータの並び替えは①並べ替え条件と、⓶挙動と実行部分の2つに分けられます。
シートのあとには並び替えの挙動のSortオブジェクトを記述します、
次に並び替え条件のSortFieldsオブジェクトをClearメソッドで前回の並べ替え条件残っている場合はリセットします。
続いて.SortFields.Add2 Key = の後に並び替えるキーとなるセルのどこかを指定する。その後、各並べ替え条件を指定します。
【並べ替え、および各条件の構文】
対象シートのオブジェクト.Sort
.SortFields.Clear ←前回までの並び替え条件が残っている場合リセットしたいときのみ記述
.SortFields.Add2 Key:= (並び替えの基準となる列セルのどこかを指定),並び替え条件
.SetRange Range(セル範囲)
.Header = ヘッダー指定の定数
.Apply 実行
セルの指定以下に並び替え各条件設定記述する。
【各条件設定】
SortOn:=並べ替えのタイプ セル内のデータで並び替える xlSortOnValues・・・規定値 その他セル背景色や、文字色での並び替えを指定できる。
Order:=並べ替えを降順、昇順を指定
・昇順:xlAscending・・・規定値
・降順 : xlDescending
*なおOrder以降は省略可能です。その場合は昇順が既定値になります。
DataOption:=列の中に数値と文字列形式の数数が混在していたらどのように並べ替えるかを指定
・数値と文字列を別々に並び替える:xlSortNormal・・・規定値
・文字列を数値として並び替える:xlSortTextAsNumbers
[コード解説]
Sub Exam1()
With Sheets("Sheet1").Sort
.SortFields.Clear
' 現在設定されているすべての並べ替え条件をクリアします。
.SortFields.Add2 Key:=Range("A2"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
' A列を基準に昇順(xlAscending)で並べ替えを設定します。
' SortOn:=xlSortOnValuesにより、セルの値に基づいて並べ替えを行います。
' DataOption:=xlSortNormalは通常の・数値と文字列を別々に並び替えを指定しています。
.SetRange Range("A1:D11")
' 並べ替えの範囲をA1:D11に設定します。
.Header = xlYes
' 1行目をタイトル行として認識するように設定します。
.Apply
' 並べ替えを実行します。
End With
End Sub