Excel で見出しをクリックするだけで昇順・降順を切り替える方法|簡単マクロで作業効率アップ – Office ソフトの使い方(79)


[初回公開] 2026年07月05日

Excel で日々のデータ管理をしていると、「この列をサッと昇順にしたい」「ワンクリックで降順に切り替えたい」と感じることはありませんか? 標準のフィルター機能でも並べ替えはできますが、項目を開いて選びなおすのは意外と手間です。本記事では、Excel の見出しセルをクリックするだけで、行単位のデータを 昇順・降順にワンタッチ切り替えできる便利な方法を紹介します。VBA マクロを使うことで、作業効率が驚くほど向上します。

Update
2026年6月:最新環境での動作確認済み

この記事で紹介している手順が、最新の Windows 11 (23H2) および Microsoft 365 (Office 2024相当) 環境でも、仕様変更なく正常に動作することを実機にて検証・確認しました。

※読者の方の利便性向上のため、関連記事をまとめた「Office操作ガイド(ピラーページ)」へのリンクを末尾に追加しました。

Excel で見出しをクリックするだけで昇順・降順を切り替える方法|簡単マクロで作業効率アップ

1.Excel で行ごと簡単に昇順降順にソートしたい

Excel では並べ替え機能が標準搭載されていますが、実際の作業では「対象列を選ぶ → 並べ替えボタンを押す」という操作がどうしても発生します。
そのため、頻繁にデータを並び替える作業では手順が多く、時間もかかりがちです。

Excel で行ごと簡単に昇順降順にソートしたい

特に Excel を業務の中心で使っている現場では、少しの手間が積み重なるだけで大きなロスとなります。
そこで便利なのが、見出しセルをクリックするだけで昇順・降順を切り替えられる仕組みです。
本記事では、こうした「クリックだけで手軽に並べ替えしたい」というニーズと、その解決方法について概要を説明します。

2.Excel を簡単に昇順降順できるようにする

Excel の見出しをクリックするだけで昇順・降順が切り替わる仕組みは、VBA マクロを活用することで実現できます。
特別なアドインや外部ツールは不要で、Excel 標準の機能だけで動作します。

設定さえしてしまえば、以後はクリック操作のみでソートが瞬時に完了します。
この機能は、大量のデータを扱う場面や毎日同じ手順で並べ替えを行うシーンで、作業時間を大きく短縮してくれます。
本章では、動作の仕組みから導入手順までをわかりやすく解説します。

2-1.動作イメージ

クリックによって並べ替えがどのように切り替わるのかをわかりやすく説明します。
見出し行(1 行目)の各項目をダブルクリックすると、その列を基準にデータが昇順と降順で交互に入れ替わります。

すでに昇順になっている列を再度クリックすれば、その場で降順に切り替わるというとても直感的な操作が可能です。
複雑な操作やメニューを選ぶ必要はありません。
どの列でも対応できるため、日常的なデータ整理の効率が飛躍的に向上します。

Excel でソートしたいデータを用意

今回のサンプルでは Excel の一行目に見出し、二行目以降にデータが入っています。
見出しは5つの項目があります。
5つある見出しのいずれかをダブルクリックすることで行ごと「昇順」「降順」を切り替わります。

2-2.準備の手順

この便利な仕組みを使うためには VBA エディターを開き、対象となるシートにコードを貼り付けるだけで設定が完了します。

VBA エディターでコードを貼り付け

① Alt + F11 で VBA エディタを開く
② 左ペインから対象シートをダブルクリック(例:Sheet1)
③ 下記コードを貼り付ける

Private lastSortCol As Long   '最後にソートした列
Private lastSortOrder As Boolean 'True = 昇順, False = 降順

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    '---- 見出し行(1 行目)のみを対象にする ----
    If Target.Row = 1 And Target.Column >= 1 And Target.Column <= 5 Then
        Cancel = True  'ダブルクリックによる編集を無効化

        Dim sortCol As Long
        sortCol = Target.Column

        '前回と同じ列なら昇順/降順を反転
        If sortCol = lastSortCol Then
            lastSortOrder = Not lastSortOrder
        Else
            lastSortOrder = True  '新しい列の場合は昇順から
        End If

        '---- ソート実行 ----
        Dim rng As Range
        Set rng = Range("A1").CurrentRegion  'データ範囲(必要に応じて調整)

        rng.Sort Key1:=rng.Columns(sortCol), _
                 Order1:=IIf(lastSortOrder, xlAscending, xlDescending), _
                 Header:=xlYes

        lastSortCol = sortCol
    End If
End Sub

必要なのは Excel に標準搭載されている開発ツールだけで、特別な設定や追加ソフトは不要です。
また、適用するデータ範囲は自由に変更できるため、用途に合わせて柔軟にカスタマイズできます。

2-3.マクロの使い方

VBA の準備が完了すると、見出しセルをダブルクリックするだけで、昇順・降順の切り替えが自動的に行われます。
複数の列で繰り返し並べ替える必要があっても、すべての見出しが同じ操作で反応するため、どの列でも直感的に扱えます。

ダブルクリックでソート

また、クリックするたびに並び順が自動で反転するため、従来のようにメニューから選び直す必要もありません。

3.Excel を簡単に昇順降順にするまとめ

Excel の並べ替えを簡単にする方法として、見出しセルをクリックするだけで昇順・降順が切り替わる仕組みは非常に有効です。
VBA マクロを活用することで、少ない操作でスムーズにデータ整理ができ、作業効率が大幅に向上します。

導入も数分あれば完了し、初心者でもすぐ実践できるのが大きな魅力です。
日常的にデータを並べ替えているユーザーにとって、この方法は業務の時短に直結します。
ぜひ、自身の Excel 作業に取り入れて、さらなる効率化を目指してください。

Microsoft Office Home 2024(最新 永続版)|オンラインコード版|Windows11、10/mac対応|PC2台

💡 Office(Excel・Word)活用ガイド

この記事の他にも、SEが実践するOfficeのトラブル解決法や効率化テクニックを体系的にまとめています。

Officeまとめページを見る

コメントを残す