|

|
|
 |
7.5 並べ替えをしてみよう |
 |
|
|
|
|
|
ワークシートに並んでいるデータを、好きな順序に並べ替える方法です。早い話がソートです。データの並べ替えを行うには、並べ替えをしたいデータの範囲に対して???.Sortメソッドを実行します。
ちなみに???の部分は、お馴染みのRangeやSelectionなどのセルの範囲を指定するオブジェクトです。詳しくは、5.1 セルや行列を扱うための基本をどうぞ。
|
|
|
|
|
|
|
|
|
|
???.Sortには次の制約があります。エラーが出たときは、一応疑ってみてください。
◆???.Sortの制約
| ワークシートへ書いたマクロのとき |
並べ替えが出来るのは、そのワークシートのみです。ワークシートがアクティブじゃなくても並べ替えできます。 |
| 標準モジュールへ書いたマクロの時 |
並べ替えを行う対象のワークシートやワークブックがアクティブになっている必要があります。 |
|
|
|
|
|
|
|
|
|
|
???.Sortの使用例です。例では、A1〜B1000の範囲をB列を基準に昇順で並べ替えを行っています。なお、先頭行(1行目)は見出し行とします。
なお、???.Sortの引数には、必要最小限を使っています。詳しくは、以下をどうぞ。
Sub prcSort()
'セルA1〜M1000の範囲のデータをB列をキーに昇順に並べ替えます
Range("A1:M10000").Sort _
Key1:=Range("B1") _
, Order1:=xlAscending _
, Header:=xlGuess _
, MatchCase:=False _
, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin
End Sub
|
※このエクセルマクロはワークシート内へ記述するマクロです
|
|
|
|
|
|
| Key1:=Range(列), Order1:=並び順 |
|
|
|
|
並べ替えのキーと並べ替えの順序を指定します。並べ替えのキーと並べ替えの順序は3つまで指定できます。(Key1〜Key3、Order1〜Order3)
キーの指定はお馴染みのRangeやColumnsやRowsやCellsなどのセルや列を指定するオブジェクトで指定します。並べ替えの順序は、小さい順(昇順)ならxlAscending、大きい順(降順)ならxlDescendingを指定します。
|
|
|
|
|
|
|
|
|
|
並べ替えをする範囲のデータに見出し行があるか無いかの指定です。xlGuessは判断はエクセルにお任せ!です。基本的には、見出しの有無はエクセルに悩んでもらいましょう。
自分で指定したい場合や見出しが無いはxlNo、範囲内に見出しが必ずあるはxlYesを指定します。
|
|
|
|
|
|
| MatchCase:=アルファベットの大文字小文字の識別 |
|
|
|
|
並べ替えを行うときの、大文字と小文字の並べ替えをどうするかを指定します。Falseは気にするなよっ!で、Aもaも同じ文字として扱われます。
逆に、Trueを指定するとAとaは別の文字として扱われ、大きい順ならa Aの順、小さい順ならA aの順に並べ替えが行われます。
|
|
|
|
|
|
|
|
|
|
並べ替えの方向を指定します。xlTopToBottomは行の並べ替え、xlLeftToRightは列の並べ替えです。
|
|
|
|
|
|
|
|
|
|
並べ替えのキーの中に日本語(漢字)が含まれていたときの並べ替え順序の指定で、xlPinYinは読み(音読み)順、xlStrokeは画数順です。
|
|
|
|
|