こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
突然ですが、Excelのシートが増えすぎて、「あれ、あの支店のシートどこだっけ?」と探すのに疲れていませんか?
あるいは、月ごとのシートを「4月、5月、6月…」と手動でドラッグして並べ替える作業に、虚しさを感じていませんか?
私も以前は、こうした単純作業が本当に苦手でした。モニターに向かって、よくため息をついていたものです。
今日は、そんな「シートの移動・並べ替え」という地味に精神を削理時間を奪う作業を、一瞬で終わらせる方法を紹介します。
【コピペでOK】シートを名前順に並べ替えるVBAコード
では、実際のコードを見てみましょう。
Sub シートを名前順に並べ替える()
Dim i As Integer
Dim j As Integer
' 画面の更新を止める
Application.ScreenUpdating = False
' 以前のシートと後のシートを比較して、順番が違えば入れ替える
For i = 1 To Sheets.Count - 1
For j = i + 1 To Sheets.Count
' もし後のシートの名前の方が「小さい(あ→んの順)」なら
If Sheets(j).Name < Sheets(i).Name Then
' シートを移動する
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
' 画面更新を再開
Application.ScreenUpdating = True
MsgBox "並べ替えが完了しました!"
End Sub
コードの解説(仕組みを知りたい方へ)
仕組みはシンプルで、「隣り合うシートの名前を順番に比較し、並びが逆なら入れ替える」という処理を繰り返しているだけです。
今回のポイントはMoveメソッドです。 このメソッドを使うことで、指定したシートを狙った場所へ正確に移動させることができます。
人間が手動で行うと手間もミスも増える「比較して、移動して……」という作業を、PCが正確かつ爆速で代行してくれます。ぜひ試してみてください。
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。
リンク
リンク

コメント