8月も本日でおわりです。8月1日より記事を書き始め、一応毎日投稿してきました。なかなか当初の目的の達成は難しく、説明の仕方がだんだんおおざっぱになって来ました。1本のプログラムを題材にプログラムのご説明をし、私が一番わからなかった Set 特殊変数 がブログを通じてみなさんにご説明できたことは私自身うれしく感じております。はりきってブログ掲載をし始めたものの、掲載準備や私自身が理解していない部分の確認もしなければならず、投稿は夜遅くになっていました。今後も皆さんの役に立つであろう、プログラムのご紹介をかなりゆったりとした進度(悪く言えばマイペース)で行う予定です。
さて本題の 並べ替えをプログラムで組んでみます。もう寝る時間を大幅に過ぎていますので、解説はプログラムの注釈で確認していただければと思います。
「170831_●サンプルデータ並べ替え.xlsm」(サンプルデータとプログラム) ダウンロードリンク先 → hiro-yukioのサイト
ポイントは次の並べ替えの命令文です。実際のプログラムで見て下さい。マクロの自動記録で記録してもなかなかプログラムとして組み込むのは大変でした。ファイル結合のプログラム同様、並べ替えしたい表題の位置が変化しても対応できるように作成してあります。合計点数の高い人順で、かつ、氏名の五十音順で並べ替えができます。
'-------------------------------------------------
'▼▼▼ 並べ替え条件の設定 ← 氏名列で並べ替え ▼▼▼
With ActiveWorkbook.ActiveSheet.Sort
.SortFields.Clear
(中略)
'-------------------------------------------------
'▼▼▼ 並べ替えの実行 ▼▼▼
.SetRange Range(Cells(2, "A"), Cells(最終行, 最終列)) '並べ替えデータ範囲の指定
(中略)
.Apply '並べ替えの実行
End With
余談ですが、わざわざ「エクセルに並べ替えの機能が付いているのに、プログラムを組む必要なんてあるの?」と思われる方もいらっしゃると思います。私は面倒くさいことが嫌いな性分で、並べ替えのデータファイルが変更されるたびにエクセルの並べ替えの条件設定をするのが嫌なため、何とかプログラムで組めないかを考えた次第です。また、複数のファイル結合のプログラムに組み込むことで一部のデータを抽出、結合することも出来る様になります。
次回の内容は考慮中です。マイペースで掲載予定です。掲載時にはTwitterでもお知らせしたいと考えています。またの機会をお楽しみに。
読者の方へ。過去の記事をご覧になられていて、「画像」が上手く表示されない場合は、「hiro-yukioのサイト」の「過去のブログ記事」フォルダーにPDFで保存しましたのでこちらでご覧下さい。