Excel VBAエキスパート資格・スタンダード解説|sortデータ並べ替え条件

 

Excel VBAエキスパート資格・スタンダード試験対策の問題集に出題している「sort データ並べ替えの条件や挙動指定と実行」の解説ページです。

 

Excel VBA Sortメソッド

Excel VBA sort  データの並べ替えは、Sortメソッドを使用します。並べ替えの条件や挙動指定と実行について、サンプルコードをもとに具体的に解説します。※あわせて、2003までのSortメソッドについても解説

 

Sortメソッドは、データの並べ替えを行うメソッドで、並べ替えの条件指定と、並べ替え挙動指定の2つに分かれています。

 

Sort.SortFields.Add2 は並べ替えの条件

 

Sortメソッドの並べ替え条件

Sort.SortFields.Add2 は並べ替えの条件を指定するためのメソッドです。

Key
並べ替えの基準となる列や範囲を指定します。

SortOn
並べ替えるデータの種類(値、セルの色、フォントなど)を指定します。

Order
並べ替えの順序を指定します(昇順、降順)

DataOption
並べ替えのデータオプションを指定します(通常のデータ、テキスト、数式など)

 

Key:=

Key:= には並べ替えの基準となる列や範囲を指定するための式や Range オブジェクトが入ります。たとえば、Range("A1:B10") のようなセル範囲を指定することができます。

 

SortOn:=

SortOn:= は、SortFields.Add2 メソッドの引数の1つで、並べ替えの対象となるデータの種類を指定します。

xlSortOnValues
値を基準に並べ替えます。

xlSortOnCellColor
セルの色を基準に並べ替えます。

xlSortOnFontColor
フォントの色を基準に並べ替えます。

xlSortOnIcon
アイコンセットを基準に並べ替えます。

 

Order:=

Order:= は、SortFields.Add2 メソッドの引数の1つで、並べ替えの順序(昇順または降順)を指定します。

xlAscending
昇順に並べ替えます(AからZ、0から9の順)

xlDescending
降順に並べ替えます(ZからA、9から0の順)

 

DataOption:=

DataOption:= は、SortFields.Add2 メソッドの引数の1つで、並べ替え時のデータのオプションを指定します。

xlSortNormal
通常の並べ替えを行います。

xlSortTextAsNumbers
テキストを数字として扱って並べ替えを行います。

 

Sortメソッドの並べ替えの挙動指定と実行

 

Sortメソッドの並べ替えの挙動指定と実行

.Sort は並べ替えの挙動指定とSortの実行のメソッドです。

SetRang
並べ替えを行うデータの範囲を指定します。

Header
並べ替えの際に対象範囲のヘッダーの有無を指定します。

MatchCase
並べ替える際に大文字と小文字を区別するかどうかを指定します。

Orientation
並べ替えの方向を指定します。

SortMethod
並べ替えの方法を指定を指定します。

Apply
並べ替え条件を適用して、データを並べ替えます。

 

SetRange

.SetRange Range("A1:D10")

 並べ替えるデータの範囲を指定

 

Header

.Header = xlYes  1行目タイトル

xlGuess
Excelが自動判定

xlYes
1行目タイトル

xlNo
1行目タイトルでない

 

MatchCase

.MatchCase = True  大文字と小文字を区別して並べ替える

True
テキストの大文字と小文字を区別して並べ替えを行います。

False
大文字と小文字を区別せずに並べ替えを行います。

 

Orientation

.Orientation = xlTopToBottom  上から下への並べ替え

xlTopToBottom
上から下への並べ替えを行います。

xlLeftToRight
左から右への並べ替えを行います。

 

SortMethod

.SortMethod = xlPinYin 

xlPinYin
日本語をふりがなで並べ替える

xlStroke
日本語を文字コードで並べ替える

 

Sub SortByColumnA()
    Dim sortRange As Range
    Set sortRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:B10") ' 並べ替え対象の範囲を指定
    
    ' A列を数字として扱って並べ替える
    ThisWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 _
        Key:=sortRange.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
        
    ' 並べ替えを実行
    With ThisWorkbook.Worksheets("Sheet1").Sort
        .SetRange sortRange
        .Header = xlYes ' タイトルがある場合はxlYesを指定
        .Apply ' 並べ替えを実行
    End With
End Sub

 

既存並べ替え条件クリア

ActivieWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear

前回指定分の条件が残っていることもあるので、Sort条件をクリアしてから実行します。
上記では、 ThisWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 _の1行前に、ThisWorkbook.Worksheets("Sheet1").Sort.SortFields.Clearと指定します。

 

Excel VBA 2003までのSortメソッド

2003までのSortメソッド

Range("A1").Sort Key1:=Range("D1"),Order1:=xlAscending,Header:=xlYes

Range("A1")を含む表全体を、`Key1`引数で指定した`Range("D1")`の列を昇順でデータを並べ替えます。 Header 引数は、1行目がタイトルと指定しています。

 

Excel VBA ふりがなの操作

Phoneticオブジェクト

セルのふりがなはPhoneticオブジェクトで確認します。

MsgBox Range("A2").Phonetic.Text

A2にふりがなが設定されていると、ふりがなを表示します。ふりがなが未設定の場合は漢字をそのまま表示します。

Phonetic.Textに、任意のふりがな設定できますが、以下のようにクリアはできません。

Range("A2").Phonetic.Text=""

 

 

sort データ並べ替えの条件や挙動指定と実行|記憶定着問題集

記憶定着問題集

操作方法:1.●●●をクリック(スマホはタップ)で答え表示。2.答えをクリック(スマホはタップ)で●●●表示。1⇔2を繰り返すことで、記憶を定着できます。

Sortメソッドの並べ替え条件
Sort.SortFields.Add2 は並べ替えの●●●を指定するためのメソッドです。

●●●
並べ替えの基準となる列や範囲を指定します。

●●●
並べ替えるデータの種類(値、セルの色、フォントなど)を指定します。

●●●
並べ替えの順序を指定します(昇順、降順)

●●●
並べ替えのデータオプションを指定します(通常のデータ、テキスト、数式など)

●●● には並べ替えの基準となる列や範囲を指定するための式や ●●● オブジェクトが入ります。たとえば、Range("A1:B10") のようなセル範囲を指定することができます。

●●● は、SortFields.●●● メソッドの引数の1つで、並べ替えの対象となる●●●を指定します。

●●●
値を基準に並べ替えます。

●●●
セルの色を基準に並べ替えます。

●●●
フォントの色を基準に並べ替えます。

●●●
アイコンセットを基準に並べ替えます。

●●● は、SortFields.●●● メソッドの引数の1つで、並べ替えの順序(昇順または降順)を指定します。

●●●
昇順に並べ替えます(AからZ、0から9の順)

●●●
降順に並べ替えます(ZからA、9から0の順)

●●● は、SortFields.Add2 メソッドの引数の1つで、並べ替え時の●●●を指定します。

●●●
通常の並べ替えを行います。

●●●
テキストを数字として扱って並べ替えを行います。

●●● は並べ替えの挙動指定とSortの●●●のメソッドです。

●●●
並べ替えを行うデータの範囲を指定します。

●●●
並べ替えの際に対象範囲のヘッダーの有無を指定します。

●●●
並べ替える際に大文字と小文字を区別するかどうかを指定します。

●●●
並べ替えの方向を指定します。

●●●
並べ替えの方法を指定を指定します。

●●●
並べ替え条件を適用して、データを並べ替えます。

●●● Range("A1:D10")

並べ替えるデータの範囲を指定

●●● = xlYes  1行目タイトル

●●●
Excelがタイトル自動判定

●●●
1行目タイトル

●●●
1行目タイトルでない

●●● = True 大文字と小文字を区別して並べ替える

●●●
テキストの大文字と小文字を区別して並べ替えを行います。

●●●
大文字と小文字を区別せずに並べ替えを行います。

●●● = xlTopToBottom 上から下への並べ替え

●●●
上から下への並べ替えを行います。

●●●
左から右への並べ替えを行います。

.SortMethod = ●●●

●●●
日本語をふりがなで並べ替える

●●●
日本語を文字コードで並べ替える

Sub SortByColumnA()
Dim sortRange As Range
Set sortRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:B10") ' 並べ替え対象の範囲を指定

' A列を数字として扱って並べ替える
ThisWorkbook.Worksheets("Sheet1").Sort.SortFields.●●● _
●●●sortRange.Columns(1), ●●●xlSortOnValues, ●●●xlAscending, ●●●xlSortTextAsNumbers

' 並べ替えを実行
With ThisWorkbook.Worksheets("Sheet1").Sort
●●● sortRange
.Header = ●●● ' タイトルがある場合は●●●を指定
●●● ' 並べ替えを実行
End With
End Sub

既存並べ替え条件クリア
ActivieWorkbook.Worksheets("Sheet1").Sort.SortFields.●●●

前回指定分の条件が残っていることもあるので、Sort条件をクリアしてから実行します。
上記では、 ThisWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 _の1行前に、ThisWorkbook.Worksheets("Sheet1").Sort.SortFields.●●●と指定します。

2003までのSortメソッド
Range("A1").Sort ●●●Range("D1"),●●●xlAscending,●●●lYes

Range("A1")を含む表全体を、`Key1`引数で指定した`Range("D1")`の列を昇順でデータを並べ替えます。 Header 引数は、1行目がタイトルと指定しています。

セルのふりがなは●●●オブジェクトで確認します。

MsgBox Range("A2").●●●

A2にふりがなが設定されていると、ふりがなを表示します。ふりがなが未設定の場合は漢字をそのまま表示します。

●●●に、任意のふりがな設定できますが、以下のように●●●はできません。

Range("A2").Phonetic.Text=""

 

あなたもExcel VBAのスキルを証明できるようにしませんか? Excel VBA エキスパート資格は、VBAプログラミングの専門家としての信頼性を高めキャリアの成長に大きく貢献し、求人市場での競争力を高め、キャリア機会を拡大します。

 

当サイトでは、Excel VBAエキスパート認定資格取得に役立つ情報を提供しています。まずは問題集から挑戦してみませんか?

 

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。