top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(27)

開発事例(20)

シート・セル操作(18)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

図形操作(7)

設計思想(7)

開発効率化(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

数学(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

ステータスバー(1)

コード解析(1)

OneDrive(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

SortCell|指定セル範囲を簡単に並び替える | Excel VBA

SortCell|指定セル範囲を簡単に並び替える | Excel VBA

<概要 VBAでセル範囲を並び替え

SortCellは、指定したセル範囲に対して、任意の列をキーとして昇順・降順の並び替えを行うための汎用プロシージャです。


Excel VBAでセル範囲の並び替え処理を実装する場合、Sortオブジェクトの設定やヘッダー行の有無判定など、記述量が多くなりがちです。


このプロシージャを使用することで、並び替えに必要な処理を1行の呼び出しに集約でき、可読性と再利用性を大きく向上させることができます。


特に、先頭行をヘッダーとして除外するかどうかを引数で切り替えられる点が特徴で、実務で頻出する一覧表データの並び替え処理に適しています。


Excel VBAでのセル並び替え処理を簡潔に記述したい場合に有効なプロシージャです。


<実行例>

 実行例のサンプルコードは次の通りです

この実行サンプルでは、SortCellの動作を「ヘッダーを含む範囲」「ヘッダーを含まない範囲」の2パターンに分け、さらにそれぞれを「昇順/降順」で並び替えることで、合計4通りの挙動を確認できます。並び替えキーはいずれも KeyCol:=2 を指定しているため、対象範囲内の**2列目(列C)**を基準に並び替えが行われます。


パターン1:昇順 + ヘッダーを含むセル範囲(B2:D7)

先頭行(B2:D2)をヘッダーとして含めた範囲を指定し、ExceptFirstRow:=True によりヘッダー行を固定したまま、データ行のみが昇順で並び替えられます。実務で最も一般的な「見出し行付きの一覧表」を安全に並び替える想定の結果になります。

パターン1実行結果
パターン1実行結果

パターン2:降順 + ヘッダーを含むセル範囲(B2:D7)

パターン1と同じくヘッダー行を含む範囲を指定し、ExceptFirstRow:=True により見出し行を固定したまま、データ行のみが降順で並び替えられます。パターン1との違いは Order のみで、並び順が逆になることを確認できます。

パターン2実行結果
パターン2実行結果

パターン3:昇順 + ヘッダーを含まないセル範囲(B3:D7)

ヘッダー行を範囲に含めず、データ部のみ(B3:D7)を対象にして並び替えを実行します。ExceptFirstRow:=False のため、範囲全体がデータとして扱われ、指定範囲内の行が昇順で並び替えられます。「最初からデータ範囲だけを指定して並び替える」運用を想定した結果になります。

パターン3実行結果
パターン3実行結果

パターン4:降順 + ヘッダーを含まないセル範囲(B3:D7)

パターン3と同様にデータ部のみ(B3:D7)を対象にして、今度は降順で並び替えを行います。ヘッダー行が範囲外にあるため、見出しが動く心配がなく、純粋にデータ行だけが降順に並び替わることを確認できます。

パターン4実行結果
パターン4実行結果

<関連記事>

 今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。

 コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。


<コード>


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page