大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、シートを昇順や降順で並び替えたい場合は、バブルソートを使って、Moveでシートを移動することで、並び替えることができます。シートが大量にある場合で、シートを並び替えしたい場合は、自動で並び替えができるようにしていきましょう。

はじめに

この記事では、シートを並び替えする方法について、ご紹介します。

残念ながら、シートを並び替えする機能はないので、プログラム的に並び替えする必要があります。

バブルソートという並び替えの手法を使って、「Move」でシートを移動させて、シートを並び替えすることができます。

シートの並び替えについて、マスターしていきましょう。

では、シートを並び替えする方法について、解説していきます。

この記事を読むメリット

  • シートを昇順や降順で並び替えることができるようになります。

本記事の内容を動画でまとめています

目次

シートを昇順に並び替えしたい

シートを昇順に並び替えしてみます。

昇順に並び替えする手順

昇順に並び替えするには、バブルソートを使って、シートを移動させることでできます。

バブルソートを使って、シートを移動させる手順についてみてみます。

まずは、1番目のシートを基準に、2~5番目のシートと比較して、シートの移動をします。

1番目を基準に比較

1番目を基準にして、2~5番目のシートと比較をします。

1番目を基準にして、2~5番目のシートと比較をします

右のシートが小さい場合は、基準のシートの左へ移動をします。

右のシートが小さい場合は、基準のシートの左へ移動をします

次は、2番目のシートを基準にして、シートを比較してシートを移動します。

2番目を基準に比較

2番目を基準にして、3~5番目のシートと比較をします。

2番目を基準にして、3~5番目のシートと比較をします

右のシートが小さい場合は、基準のシートの左へ移動をします。

右のシートが小さい場合は、基準のシートの左へ移動をします

次は、3番目を基準にしてシートを比較して、シートを移動させます。

3番目を基準に比較

3番目を基準にして、4~5番目のシートと比較をします。

3番目を基準にして、4~5番目のシートと比較をします

右のシートが小さい場合は、基準のシートの左へ移動をします。

右のシートが小さい場合は、基準のシートの左へ移動をします

次は、4番目を基準にしてシートを比較して、シートを移動させます。

4番目を基準に比較

4番目を基準にして、5番目のシートと比較をします。

4番目を基準にして、5番目のシートと比較をします

右のシートが小さい場合は、基準のシートの左へ移動をします。

右のシートが小さい場合は、基準のシートの左へ移動をします

こんな感じで、シートを比較して、シートを移動させることで、シートを昇順に並び替えすることができます。

VBAコード

シートを昇順に並び替えするVBAコードをみてみます。

手順としては、次のようになります。

  • 基準のシートを「1~4番目」でループ
  • 比較シートを「基準+1番目~最終シート」でループ
  • 右側のシートが小さい場合は、基準シートの左に移動

VBAコードはつぎのようになります。

Sub TEST1()
  
  '基準をループ
  For i = 1 To 4
    '比較先をループ
    For j = i + 1 To 5
      '右側が小さい場合は、基準の左に移動
      If Sheets(i).Name > Sheets(j).Name Then
        Sheets(j).Move before:=Sheets(i) '基準の左に移動
      End If
    Next
  Next
  
End Sub

では、実際に実行する流れをみていきます。

実行する流れ

実行する流れをみていきます。

やりたい内容は、シートを昇順に並び替えしたいということになります。

シートを昇順に並び替えしたい

シートを昇順に並び替えしたいです

1番目を基準に比較して、シートを移動させます。

1番目を基準に比較

1番目と、2番目のシートを比較します。

1番目と、2番目のシートを比較します

右のシートの方が小さいので、基準シートの左に移動をします。

右のシートの方が小さいので、基準シートの左に移動をします

1番目と、3番目のシートを比較します。

1番目と、3番目のシートを比較します

右のシートの方が小さいので、基準シートの左に移動をします。

右のシートの方が小さいので、基準シートの左に移動をします

1番目と、4番目のシートを比較します。

1番目と、4番目のシートを比較します

1番目と、5番目のシートを比較します。

1番目と、5番目のシートを比較します

次は、2番目を基準に比較して、シートを移動させます。

2番目を基準に比較

2番目と、3番目のシートを比較します。

2番目と、3番目のシートを比較します

2番目と、4番目のシートを比較します。

2番目と、4番目のシートを比較します

2番目と、5番目のシートを比較します。

2番目と、5番目のシートを比較します

次は、3番目を基準に比較して、シートを移動させます。

3番目を基準に比較

3番目と、4番目のシートを比較します。

3番目と、4番目のシートを比較します

3番目と、5番目のシートを比較します。

3番目と、5番目のシートを比較します

次は、4番目を基準に比較して、シートを移動させます。

4番目を基準に比較

4番目と、5番目のシートを比較します。

4番目と、5番目のシートを比較します

右のシートの方が小さいので、基準シートの左に移動をします。

右のシートの方が小さいので、基準シートの左に移動をします

これで、シートを昇順に並び替えできます。

シートを昇順に並び替えできた

シートを昇順に並び替えできました

シートを昇順に並び替えできました。

シートを降順に並び替えしたい

次は、シートを「降順」に並び替えしてみます。

降順に並び替えする手順

考え方は、昇順の場合と同じで、バブルソートを使って、シートを比較してシートを移動させていく、という感じになります。

昇順と違うのは、右のシートが「大きい」場合に、シートの移動をするという点になります。

では、手順をみていきます。

まずは、1番目を基準に比較して、シートを移動させます。

1番目を基準に比較

1番目を基準にして、2~5番目のシートと比較をします。

1番目を基準にして、2~5番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

次は、2番目を基準に比較して、シートを移動させます。

2番目を基準に比較

2番目を基準にして、3~5番目のシートと比較をします。

2番目を基準にして、3~5番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

次は、3番目を基準に比較して、シートを移動させます。

3番目を基準に比較

3番目を基準にして、4~5番目のシートと比較をします。

3番目を基準にして、4~5番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

次は、4番目を基準に比較して、シートを移動させます。

4番目を基準に比較

4番目を基準にして、5番目のシートと比較をします。

4番目を基準にして、5番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

という感じで、シートを降順に並び替えることができます。

VBAコード

シートを降順に並び替えるVBAコードをみてみます。

手順は、次のようになります。

  • 基準のシートを「1~4番目」でループ
  • 比較シートを「基準+1番目~最終シート」でループ
  • 右側のシートが「大きい」場合は、基準シートの左に移動

降順の場合は、右側のシートが「大きい」場合に、シートを移動させます。

VBAコードは、次のようになります。

Sub TEST2()
  
  '基準をループ
  For i = 1 To 4
    '比較先をループ
    For j = i + 1 To 5
      '右側が大きい場合は、基準の左に移動
      If Sheets(i).Name < Sheets(j).Name Then
        Sheets(j).Move before:=Sheets(i) '基準の左に移動
      End If
    Next
  Next
  
End Sub

では、実行する流れをみていきます。

実行する流れ

やりたい内容としては、シートを降順に並び替えしたいということになります。

シートを降順に並び替えしたい

シートを降順に並び替えしたいです

では、VBAコードを実行してみます。

まずは、1番目を基準に比較して、シートを移動させます。

1番目を基準に比較

1番目を基準にして、2番目のシートと比較をします。

1番目を基準にして、2番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

1番目を基準にして、3番目のシートと比較をします。

1番目を基準にして、3番目のシートと比較をします

1番目を基準にして、4番目のシートと比較をします。

1番目を基準にして、4番目のシートと比較をします

1番目を基準にして、5番目のシートと比較をします。

1番目を基準にして、5番目のシートと比較をします

次は、2番目を基準に比較して、シートを移動させます。

2番目を基準に比較

2番目を基準にして、3番目のシートと比較をします。

2番目を基準にして、3番目のシートと比較をします

2番目を基準にして、4番目のシートと比較をします。

2番目を基準にして、4番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

2番目を基準にして、5番目のシートと比較をします。

2番目を基準にして、5番目のシートと比較をします

次は、3番目を基準に比較して、シートを移動させます。

3番目を基準に比較

3番目を基準にして、4番目のシートと比較をします。

3番目を基準にして、4番目のシートと比較をします

3番目を基準にして、5番目のシートと比較をします。

3番目を基準にして、5番目のシートと比較をします

次は、4番目を基準に比較して、シートを移動させます。

4番目を基準に比較

4番目を基準にして、5番目のシートと比較をします。

4番目を基準にして、5番目のシートと比較をします

右のシートが大きい場合は、基準のシートの左へ移動をします。

右のシートが大きい場合は、基準のシートの左へ移動をします

これで、シートを降順に並び替えできます。

シートを降順に並び替えできた

シートを降順に並び替えできました

シートを降順に並び替えできました。

おわりに

この記事では、シートを並び替えする方法について、ご紹介しました。

残念ながら、シートを並び替えする機能はないので、プログラム的に並び替えする必要があります。

バブルソートという並び替えの手法を使って、「Move」でシートを移動させて、シートを並び替えすることができます。

シートの並び替えについて、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す