【VBA】新規シートを常に末尾(一番右)に追加する方法

目次

はじめに

Excelで新しいシートを追加すると、通常は現在アクティブなシートの左側に挿入されます。しかし、月別の集計シートや、作業履歴のログシートなど、「常に一番右端(末尾)にシートを追加したい」というケースは非常に多いですよね。

毎回手動でシートを右端までドラッグするのは、地味に面倒な作業です。

VBAでマクロを作成しておけば、この「シートを末尾に追加する」という作業をボタン一発で完了させることができます。この記事では、そのためのシンプルで確実なコードをご紹介します。


シートを末尾に追加するVBAサンプルコード

Worksheets.Add メソッドを使うことで、新しいシートを追加できます。このとき、After という引数を指定することで、シートをどこに追加するかを正確にコントロールできます。

シートを末尾に追加するには、「最後のシートの後ろ (After)」に追加する、と命令すればよいわけです。

完成コード

' 新しいワークシートをブックの末尾に追加する
Sub AddNewSheetAtEnd()

    ' 変数を定義します
    Dim sheetCount As Long
    
    ' 現在のシート数を取得
    sheetCount = ThisWorkbook.Worksheets.Count
    
    ' 最後のシートの後ろに新しいシートを追加
    Worksheets.Add After:=Worksheets(sheetCount)
    
    MsgBox "新しいシートを末尾に追加しました。", vbInformation

End Sub

【使い方】

  1. VBE(Alt + F11)を開き、標準モジュールに上記のコードを貼り付けます。
  2. AddNewSheetAtEnd マクロを実行します。
  3. ブックの一番右側に、新しいシートが追加されます。

コードの解説

Dim sheetCount As Long

現在のシート数を格納するための変数 sheetCount を宣言しています。

sheetCount = ThisWorkbook.Worksheets.Count

Worksheets.Count プロパティを使って、このブックに存在するシートの総数を取得し、変数 sheetCount に代入しています。例えば、シートが5枚あれば、sheetCount には 5 が入ります。

Worksheets.Add After:=Worksheets(sheetCount)

このコードが処理の核心です。

  • Worksheets.Add: 新しいシートを追加する命令です。
  • After:=: シートを「~の後ろに」追加するための引数です。
  • Worksheets(sheetCount): sheetCount 番目のシート、つまり「最後のシート」を指定しています。

全体として、「最後のシートの後ろに、新しいシートを追加しなさい」という意味になり、結果としてシートは常に一番右端に追加されます。


まとめ

今回は、新規シートを常にブックの末尾に追加する、シンプルで実用的なマクロをご紹介しました。

  • Worksheets.Add メソッドの After 引数が鍵。
  • Worksheets.Count で最後のシートを指定する。

この一行を覚えておくだけで、日々のシート追加作業がぐっと楽になります。個人用マクロブックに登録して、いつでも呼び出せるようにしておくと、さらに便利に活用できるでしょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次