検索

キーワード


目次

【Excel VBA】SORTを使って、並び替えを行う方法

  • 公開日:2023-06-19 10:14:25
  • 最終更新日:2023-06-18 20:51:42

Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!

フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。

皆さんこんにちは、エンジニアのIMMRです。


今回は、プログラム開発でよく使われるSORTつまり並び替えについて説明していきます。

使用するブックは下記のとおりです。


図1 サンプルブック

図1 サンプルブック

上記のサンプル図のように商品名と価格が記載されている表があります。

この図に対して、B列に記載してある価格をSORTしていきたいと思います。


1.SORTの方法について

SORTを指定する場合以下、4点の設定が必要になります。

①並び替えを行う範囲

②並び替えを行うキー

③並び替えの方法(昇順か降順か)

④最初の行について(ヘッダーが含まれているか)

です。


①並び替えを行う範囲

どこの範囲の並び替えを行うか設定します。そして、範囲の設定後にSortを記載します。


記載例

Range(範囲).Sort 


②並び替えを行うキー

並び替えを行うキーすなわち、並び替えを行うフィールドを設定します。

設定はRangeオブジェクトを使用します。

そして、一つ目の並び替えキーとして、key1:=並び替えキー と記載します。
2つ目の場合、key2:=並び替えキーとします。


記載例

Key1:=Range("B1")

図1 サンプルブックにおいて、並び替えキーは、B列になります。

そのためここではB1とします。


③並び替えの方法(昇順か降順か)

order1:=を付けてから

並び替えの方法(順序)を設定します。


昇順:xlAscending

降順:xlDescending


記載例 ※ここでは昇順を設定します。

order1:=xlAscending


④最初の行について(ヘッダーが含まれているか)

これは、その名のとおり、最初の行にヘッダー情報が含まれているか、最初の行も対象にするかを設定します。

一番上の行がヘッダーなら並び替え対象外になりますよね。

しかし、データによってはヘッダーとかがなく、1番上の行も並び替え対象になるものもあります。

そのため、一番上が並び替えの対象になるか、ならないかは処理の内容によって異なってくるのです。


Header:=・・・を付けてから「xlYes」を指定すると、最初の行は並び替えの対象外になります。

Header:=・・・を付けなくてもエラーにはなりません。そして、最初の行も並び替えの対象になります。


記載例 ※最初の行は並び替えの対象外としています。

Header:=xlYes


2.SORTの方法(サンプルプログラム)

では、上記であげた記載方法を結合して、サンプルプログラムを作成していきます。


基本、上記であげた

①並び替えを行う範囲

②並び替えを行うキー

③昇順か降順か

④最初の行にヘッダーが含まれているか

を””を使って結合していきます。

使用するブックは図1であげたサンプルブックです。


サンプルプログラム

Sub test()

    Range("A1:B12").Sort Key1:=Range("B1"), order1:=xlAscending, Header:=xlYes

End Sub


範囲:(A1~B12)

SORTキー:B列のキー(B1)

並び替え方法: xlAscending(昇順

最初の行にヘッダーが含まれている:Header:=xlYes

という内容です。


3.SORTの方法(サンプルプログラム)の実行

図1 サンプルブックに対して、上記プログラムを実行した結果です。


図2 実行結果

図2 実行結果

きちんとB列の価格に対して昇順で並び替えを実施していることが確認できます。


これによりSORTを使って、並び替えを行うことが出来ました。


【著者】

Imamura

「挑戦心」を忘れずに、新しいことにチャレンジしています。 資格:VBAエキスパート Excel VBA(ベーシック/スタンダード) 等

編集した記事一覧

正社員/フリーランスの方でこのようなお悩みありませんか?

  • 自分に合う案件を定期的に紹介してもらいたい
  • 週2、リモートワークなど自由な働き方をしてみたい
  • 面倒な案件探し・契約周りは任せて仕事に集中したい

そのような方はぜひ、Workteriaサイトをご利用ください!

  • 定期的にご本人に合う高額案件を紹介

  • リモートワークなど自由な働き方ができる案件多数

  • 専属エージェントが契約や請求をトータルサポート

よく読まれている記事