スタンダード 模擬問題

Excel VBA スタンダード 模擬問題  ① 第27問 7章-6

次のコードは、表をA列を基準に降順かつ、列の中の数値と文字列を別々に並び替えるマクロである。空欄に入る適切な語句を解答しなさい。

Exam1()

 With sheets("Sheet1"). Sort

    .SortFields.Clear

  .SortFields. Add2 _

   Key= Range("A2"), _

   SortOn:=xlSortOnValues, _

   Order:=【 ① 】, _

   DataOption:=【 ② 】

  .SetRnage(”A2:D11”)

  .Header= xlNo

  .Apply

 End With

EndSub

 

正解

【 ① 】xldescending

【 ② 】xlsortnormal

解説

Order(昇順か降順か)に指定できる定数は、昇順は xlAscending…(規定値)、降順はxlDscendingを指定する。

DataOption(数値と文字列の並び替え)に指定できる定数は、並び替える列の中の数値と文字列、別々に並び替えるはxlSortNormal…(規定値)、
文字列を数値とみなし並べ替えるはxlSortTextNumbersを指定します。

SortOn(並び替えのタイプ) xlSortOnValuesはセル内のデータで並び変えるという意味です。他に
xlSortCellColor…他に背景色
xlSortfontColor…セルの文字色で並び替えるなどが指定できます。

[コード解説]

Sub Exam1()

 With Sheets("Sheet1").Sort

  .SortFields.Clear

' 現在設定されているすべての並べ替え条件をクリアします。

  .SortFields.Add2 _
  Key:=Range("A2"), _
  SortOn:=xlSortOnValues, _
  Order:=xlDescending, _
  DataOption:=xlSortNormal

' A列を基準に降順(xlDescending)で並べ替えを設定します。
' DataOption:=xlSortNormalにより、数値と文字列を別々に並べ替えるオプションを指定しています。

  .SetRange Range("A2:D11")

' 並べ替えの範囲をA2:D11に設定します。

  .Header = xlNo

' タイトル行がない場合の設定です。

  .Apply

' 並べ替えを実行します。

 End With

End Sub