【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
皆さんこんにちは、エンジニアのIMMRです。
今回は、プログラム開発でよく使われるSORTつまり並び替えについて説明していきます。
使用するブックは下記のとおりです。
図1 サンプルブック
上記のサンプル図のように商品名と価格が記載されている表があります。
この図に対して、B列に記載してある価格を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
では、上記であげた記載方法を結合して、サンプルプログラムを作成していきます。
基本、上記であげた
①並び替えを行う範囲
②並び替えを行うキー
③昇順か降順か
④最初の行にヘッダーが含まれているか
を”,”を使って結合していきます。
使用するブックは図1であげたサンプルブックです。
サンプルプログラム
Sub test()
Range("A1:B12").Sort Key1:=Range("B1"), order1:=xlAscending, Header:=xlYes
End Sub
範囲:(A1~B12)
SORTキー:B列のキー(B1)
並び替え方法: xlAscending(昇順)
最初の行にヘッダーが含まれている:Header:=xlYes
という内容です。
図1 サンプルブックに対して、上記プログラムを実行した結果です。
図2 実行結果
きちんとB列の価格に対して昇順で並び替えを実施していることが確認できます。
これによりSORTを使って、並び替えを行うことが出来ました。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート