エクセル マクロ

エクセルの並び替えを自動化するマクロの作り方

エクセルで表を管理していると、必ず発生するのが「並び替え」です。日付順、数値の昇順・降順、部署別など、データを見やすく整理するために並び替えは欠かせません。

しかし、毎回手動で並び替えをしていると、時間もかかる上にミスの原因にもなります。そこでマクロを活用すれば、効率も良くなる上にミスの防止にもつなげることができます。

この記事では、エクセルでの並び替え作業を自動化するマクロの基本から応用までを、初心者にも分かりやすく解説します。

マクロとは?並び替えとの関係

マクロとは、操作を自動化する仕組みのことです。エクセルで使えば、エクセルの操作を自動化することができます。具体的には、VBA(Visual Basic for Applications)という言語を使って、繰り返し作業や複雑な処理を自動で実行することができます。

今回、作業として対象にしている並び替えもその一つで、特定の列を基準に自動で並び替えを行うマクロを作成すれば、作業効率が格段に上がります。

並び替えを自動で行うマクロの基本構文

以下は、エクセルの表を「A列(日付)を基準に昇順で並び替える」内容の基本的なマクロです。

Sub SortByDate()
Range("A1").CurrentRegion.Sort _
Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes
End Sub

ポイントの解説

  • CurrentRegion:A1セルを起点とした連続した表全体を対象にします。
  • Key1:並び替えの基準とするセルを指定。ここでは「A2」。
  • Order1:=xlAscending:昇順。降順にする場合は xlDescending
  • Header:=xlYes:1行目は見出しとして処理されます。

複数条件での並び替え

例えば、商品名(B列)で昇順、その中で売上(C列)で降順に並び替えたい場合は以下のようになります。

Sub SortByItemAndSales()
Range("A1").CurrentRegion.Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("C2"), Order2:=xlDescending, _
Header:=xlYes
End Sub

このように、エクセルマクロでは複数条件での並び替えも自動化可能です。

特定のシートでのみ並び替えたい場合

以下のように、特定のシートを明示して並び替えを行うことも可能です。

Sub SortInSpecificSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("データ一覧")

With ws
.Range("A1").CurrentRegion.Sort _
Key1:=.Range("A2"), Order1:=xlAscending, Header:=xlYes
End With
End Sub

複数シートを扱うブックであっても、こうした指定により誤操作を防ぐことができます。

並び替えマクロの活用シーン

実務において、例えば以下のような場面で並べ替えのマクロは力を発揮します。

  • 毎月の売上データを日付順に並べる
  • 社員一覧を部署順に並べ直す
  • アンケート集計データを点数の高い順に整理する
  • 作業日報を時間の早い順に整理する

手動操作では面倒な処理も、マクロ化しておけばワンクリックで完了します。

実行ボタンを付けてさらに効率化

マクロはボタンに登録することで、誰でも簡単に実行できます。

  1. 「開発」タブ →「挿入」→「フォームコントロール」からボタンを挿入

2. マクロを選択して割り当て

3. ボタンをクリックするだけで並び替えを実行できるようになる

これにより、他の人でも操作しやすい「業務ツール」としてのエクセルを構築できます。

※エクセルに「開発」タブが出ていない場合は下記をご参考下さい

【エクセルマクロ】「開発」タブの表示方法

マクロ実行前の注意点

並び替えマクロを安全に運用するために、以下のポイントに注意しましょう。

  • 並び替える範囲が正しく指定されているか(CurrentRegionでは不十分な場合も)
  • ソートキーの列に空白がないか
  • 実行したときにデータが正しく並ぶか事前にバックアップを取る
    ※マクロは実行すると「元に戻す」で戻せないため

トラブル時のよくある原因と対策

現象原因対策
並び替えされないデータ範囲の指定ミスCurrentRegionが正しく表全体をカバーしているか確認
エラーで停止ソートキーが空欄先頭行を確認、列番号のずれに注意
並び順がおかしい数値と文字列が混在セルの書式設定を統一する

まとめ

自動で並び替えを行うエクセルマクロを構築することで、日常業務の煩雑な作業を効率的に自動化できます。

  • 昇順・降順だけでなく、複数条件もOK
  • 指定シートでの処理、ボタンとの連携も可能
  • マクロ記録機能と組み合わせれば初心者でも導入しやすい

繰り返す操作は、マクロに任せるのが現代の業務改善の第一歩です。ぜひ、自社や個人の業務に合わせた並び替えマクロの導入を検討してみてください!

  • この記事を書いた人

いしはらゆうと

実務エクセルのプロ
パソコンが使えず全く仕事ができなかったことから猛勉強し、 各部署から頼りにされるレベルになりついにはSEに。
マクロを活用し、2人がかりで1日の仕事を1人×30分に短縮。 自身の経験から、最短で学ぶことのできるエクセル学法をノウハウ化し数十名以上にオンライン講座を開講。
現在は「瞬習エクセルアカデミー」として実務に必要なスキルをスキマ時間で学ぶことのできるオンラインスクールを運営中。
元SE
国家資格:応用情報技術者

-エクセル, マクロ
-,