Excelシートを任意の順番に並び替えたい!マクロで簡単にできる

最近、在宅でのお仕事が増え、人に頼らない(頼れない)環境の人多いですよね。

私もその一人。

パソコン操作とかで分からないことが出てきたら、
ネットで自分で探したりと、自力で何とかしたりしないといけない時があります。

今回も、そんな感じで自力で調べた結果をまとめておこうと思います。

スポンサーリンク

エクセルのシートを任意の順に並べ替えたい

Excelを使用していると、複数のシートを使うことってよくあると思います。

10個程度のシートならマウスを使ってポチポチと並び替えしても
それほど大変ではない。

けど、20個くらいになるとちょっとストレス感じますよね~。

更に50個とかもっと多くなると、気が遠くなる・・・・ (××)~☆

私、40個くらいのシートを使って毎月作業していることがあって。

何とか一瞬でバンッ!って出来ないかな~と考えていたんですよね。

それが、どうやらできるらしい、と。

いや、できるんですよ!(^^)!

Excelシートを自分の好きな順番で並べ替えしたい場合って、

①並べ替え順がすでに決まっていて、その通りに並べ替えたい
②シート名が把握できていないからシートをリスト化してから任意で並べ替えたい

この2パターンがあると思うんですよね。

今回は、①のパターンの方法を書きたいと思います。

エクセル並び替えのマクロを作る

マクロとかVBAって聞くと、ヾ(・ω・`;)ノぁゎゎってなりますが、
深く考えずに、コピペして使ってもらえるようにしてあるので安心して下さい。

 マクロの作り方

まずは新しいExcelを開きます。

「Alt+F11」で、新規のVBA画面が開きます。

こんな感じのやつです。

「挿入」→「標準モジュール」を選ぶと、白い画面が開いてきます。

ここに、プログラムを入力してマクロが動くわけですね。

下のマクロをそのまま貼りつけてください。

Sub ChangeOrder()
Dim ar() As String ‘シート名
Dim i As Integer ‘ループカウンター
Dim s As String ‘値

Sheets(“sortSheet”).Select
Range(“A1”).Select

i = 0
ReDim ar(i)

‘A列をループする
Do
‘セル値を取得
s = ActiveCell.Offset(i, 0).Value

If (s = “”) Then
Exit Do
End If

‘シート名を格納する
ReDim Preserve ar(i)
ar(i) = s

i = i + 1
Loop

‘シートの順序を”sortSheet”の順に並べ替え
i = 0
Do
If (i > UBound(ar)) Then
Exit Do
End If

Sheets(ar(i)).Move before:=Sheets(i + 1)

i = i + 1
Loop

‘シート削除確認ダイアログを表示しない
Application.DisplayAlerts = False

‘”sortSheet”シートを削除
Sheets(“sortSheet”).Delete

Application.DisplayAlerts = True
End Sub

貼り付けたら、VBA画面の左上の保存をクリックして保存します。

これでマクロ自体は完成です。

保存が出来たら、右上の×でVBA画面は閉じてOKです。

 並び替えリストのシートを作る

マクロは完成しましたが、これだけでは正しく動きません。

シートをどの順番で並べたいのか

これを指定するものが必要ですよね。

先ほどマクロを保存して閉じたと思いますが、今はExcelが開いていると思います。

このExcelの中にマクロが仕込まれたという状態です。

では今開いている真っ白なExcelに、並び替えたい順にシート名を入力して行きます。

例えば、下の画像のように各都道府県がバラバラに並んでいて、

これを、北から順に並べ替えたい時は、こんな感じ↓

A列にシート名のリストを入力しておきます。

そして肝心なのは、シート名です。

最初のままですと、”Sheet1”になっていますが、
今回マクロの中でシート名を”sortSheet”にしているので、
リストのシート名は”sortSheet”に変更してください。

↑こんな感じ。

これで、並び替え用のマクロと一覧が出来上がったので、
「並び替え用」などと名前を付けてエクセルを保存しておきましょう。

今回1回きりの場合だと、
並べ替えたいシートがあるExcelに直接マクロを入れ込んでもいいのですが、

今後も定期的に使いたい場合には、
このようにマクロを別のファイルとして保存しておいた方が便利です。

スポンサーリンク

並べ替えマクロを使ってみる

では、実際に並べ替え用マクロを使ってシートの並び替えをしてみます。

並べ替えをしたい大量のシートがあるファイルを「都道府県別〇〇」、
先ほど作成したマクロのファイルが「並べ替え用」となります。

両方のファイルを開きます。

並べ替え用のファイルに作成したリストのシートを右クリック
→ 移動またはコピーを選びます。

・移動先ブック:都道府県別〇〇(並べ替えたいシートがあるファイル)
・挿入先:末尾へ移動
・コピーを作成するにチェック
でOKを押します。

これで、並び替えたいシートがあるファイルの末尾に”sortSheet”がコピーされました。

表示 → マクロの表示 を選びます。

先ほど作ったマクロが出て来るので、選んで「実行」をクリック。

これで自動的にリスト通りに並び替えがされます。

マクロ実行前↓

マクロ実行後↓

ちゃんと都道府県別シートが、北から順に並び変わりました。

 エラーが出たときは?

マクロ実行中にエラーが出たときは、2つの原因が考えられます。

①並び替えたいシート名がリストの中にない
②リストにないシート名がある

このどちらかです。

エラーの原因を解消(リストに追加する or 削除する)してから再度実行すれば
解決するはずです。

Excelシートを任意に並び替えるまとめ

マクロを作ろうと考えると、憂鬱になってしまいますよね。

でも、最初に1回だけ少し苦労すれば、今後の作業は格段に楽になりますよ!

毎回時間をかけてシートの並び替えをするのではなく、
ぜひ活用してみて下さい♪

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする