この記事では、エクセルでシートの順番を一括で入れ替える方法について解説していきます。
対応策は以下の通りです。
対応策2 カスタム順序での並び替え → 複雑なシート名や特別な順序に対応。
対応策3 シート順序の逆転 → 現在の順序を単純に逆転。瞬時に実行可能。
それぞれの性質を理解したうえで、適宜使い分けするようにしてください。
それでは見ていきましょう。
事前準備:マクロのセキュリティ設定
VBAを実行する前に、マクロのセキュリティ設定を確認してください。
「ファイル」→「オプション」→「トラストセンター」→「トラストセンターの設定」→「マクロの設定」で、「警告を表示してすべてのマクロを無効にする」または「デジタル署名されたマクロを除き、すべてのマクロを無効にする」を選択することをお勧めします。
エクセルでシートの順番を一括で入れ替える方法1【シート名を基準としたVBA】
シート名を基準にして自動的に昇順(アルファベット順・数字順・五十音順)で並べ替えたい場合におすすめです。
複数のシートが存在していて、その内容をもとに、シート名の昇順で自動並び替えを行う方法です。
「Sheet4」「Sheet1」「Sheet3」「Sheet2」の順番になっているシートを、「Sheet1」「Sheet2」「Sheet3」「Sheet4」の順に並べ替えたい場合、VBA(Visual Basic for Applications)を活用する方法を使います。
VBAとは、簡単に言えば、エクセル上で動かすプログラミングコードです。
まず、VBAの立ち上げ方から見ていきます。
ショートカットキーの「Alt + F11」を押してVBAエディタを開きます。
VBAエディタが開いたら、「挿入」→「標準モジュール」を選択し、新しいモジュールを作成します。

※ショートカットキー以外にVBAエディタを開く方法は、「開発タブ」→「Visual Basic」を開きますが、通常は、開発タブが表示されていませんので、その際は、「ファイルタブ」→「オプション」→「リボンのユーザー設定」より「開発」のチェックボックスにチェックを入れて「OK」をクリックすれば開発タブが表示されます。

注意:Alt+F11が動作しない場合
NVIDIA GeForce Experienceなどの他のソフトがAlt+F11を使用している場合があります。
その場合は、該当ソフトのショートカット設定を変更するか、開発タブから「Visual Basic」をクリックしてください。
標準モジュールを開くと、中は以下の通り白紙となっていますので、ここにVBAコードを書いていきます。

作成されたモジュールに、以下のVBAコードを入力します。

コードを入力したら、「F5」キーを押して実行します。

すると、「シートの昇順並び替えが完了しました。」というメッセージが表示されますので、確認出来たら完了です。

実行後、シートタブを確認すると、「Sheet1」「Sheet2」「Sheet3」「Sheet4」の順に正しく並び替えられていることが確認できます。
ただし、この方法はシート名を基準とした並び替えのため、任意の順序で並べたい場合には適用できません。その場合には、次の方法を活用してください。
エクセルでシートの順番を一括で入れ替える方法2【任意の順序で並べ替えたい場合】
この方法は、シート名では適切にソートできない場合や、任意の順序で並べ替えたい場合に使用します。
一旦シート名をセルに出力し、任意の順序に編集してから読み込み直す方法です。

シート名が「営業部」「総務部」「経理部」のように一般的に決まった順序が存在しない場合を想定します。
この時、部門別の特定順序で並べ替えたい場合、シート名をワークシートに出力してカスタム順序を設定する方法を使います。
特に、シート数が多い場合には有効な方法です。
まず、新しいワークシートを追加し、「SheetOrder」という名前に変更します。
![]()
次に、ショートカットキーの「Alt + F11」を押してVBAエディタを開きます。
VBAエディタが開いたら、「挿入」→「標準モジュール」を選択し、一つ目で作成したコードの下に以下のVBAコードを入力し、F5キーで実行します。

実行が完了すると、以下の表示がされます。

OKをクリックすると、各シート名がSheetOrderシートのA列に出力されます。

シート名がSheetOrderシートのA列に表示されたら、次は、このA列のデータを並び替えたい順番に入れ替えます。
たとえば、以下のようにシートの順番を変更したい場合には、このA列の順番を手動で変更してください。

並び替えが完了したら、ショートカットキーの「Alt + F11」を押してVBAエディタを開きます。
VBAエディタが開いたら、「挿入」→「標準モジュール」を選択し、先ほど作成したコードの下に以下のVBAコードを入力し、F5キーで実行します。

この方法により、複雑なシート名でも任意の順序で並び替えることができます。
※ちなみに、対応策1では自動的にシート名で並び替えましたが、対応策2と同様にカスタム順序機能を使うことで、より柔軟な並び替えが可能です。
エクセルでシートの順番を逆にする方法【現在の順序を反転させるVBA】
次に紹介する方法が、現在のシート順序を完全に逆順にする方法となります。
対応策1の応用版で、昇順ではなく現在の順序を反転させるVBAを使用します。
現在「Sheet1」「Sheet2」「Sheet3」「Sheet4」の順番になっているシートを、「Sheet4」「Sheet3」「Sheet2」「Sheet1」の順に逆転させたい場合、シート順序反転VBAを使用します。
一つ目の方法の逆となります。
ショートカットキーの「Alt + F11」を押してVBAエディタを開きます。
VBAエディタが開いたら、「挿入」→「標準モジュール」を選択し、先ほど作成したコードの下に以下のVBAコードを入力し、F5キーで実行します。

実行すると、以下のメッセージが表示されます。

シートを確認すると、元の順序とは完全に逆の配置が実現されます。

この方法を使用することで、複雑な計算なしに確実にシート順序を逆転させることができます。
VBAを使わない代替手段
RelaxTools Addinの活用
VBAを書くのが困難な場合は、「RelaxTools Addin」などのExcelアドインを使用する方法もあります。
これらのアドインには、シートの並び替え機能が組み込まれており、ボタン一つで昇順・降順の並び替えが可能です。
Office Scriptの活用
Microsoft 365ユーザーの場合、Office Scriptを使用してブラウザ版のExcelでシートの並び替えを行うことも可能です。
まとめ エクセルでシートの順番を昇順等のソート:逆にする:一括入れ替えの方法
ここまで、【Excel】エクセルでシートの順番の一括で入れ替え(昇順等のソート:逆にする)する方法【完全版】
それぞれの方法を理解し、業務に役立てていきましょう。特に多数のシートを扱うワークブックでは、これらのVBAを活用することで大幅な作業効率向上が期待できます。


コメント