VBAでシートの追加・名前追加・削除する方法
ExcelのVBAを使用しているときに、知っていると便利なのがシートを追加したり削除する方法。
最初は難しそうな印象を持っていましたが、実際にコードを作成してみるととても簡単にできます。
そこでこの記事ではVBAでシートの追加と名前追加、削除する方法を紹介します。
コードをコピペできるように参考のコードも載せていますので、是非活用していきましょう。
目次
VBAでシートの左端に追加する方法
まずはAlt+11でVBAの入力画面を呼び出し、その後標準モジュールを挿入しましょう。
シートを一番左端に追加し、名前を付ける場合は以下のコードで作成することができます。
1 2 3 4 |
Sub シート追加() Worksheets.Add before:=Worksheets(1) Worksheets(1).Name = "一覧表" End Sub |
Worksheets.Add before:=Worksheets(1)で一番左端のsheetの前に追加し、Worksheets(1).Nameで名前をつけることができます。
シートの後ろに追加する方法
一番左端のsheetの後ろに追加したい場合はafterを使います。
1 2 3 |
Sub シート追加() Worksheets.Add after:=Worksheets(1) End Sub |
一番最後のシート名も変更する場合
一番最後にシートを追加し、さらに修正する場合は以下のように入力しましょう。
1 2 3 4 |
Sub シート追加() Worksheets.Add after:=Worksheets(Worksheets.Count) Worksheets(Worksheets.Count).Name = "一覧表" End Sub |
ひこ一覧表のように指定したシート名を作成する場合、同じシート名が存在するとエラーになるの注意
シートの一番最後に追加する方法
一番最後にシートを追加する場合はworksheets.countを使用することで作成できます。
1 2 3 |
Sub シート追加() Worksheets.Add after:=Worksheets(Worksheets.Count) End Sub |
月名を更新するシートの作成方法
次に、より実践的なシート名の作成方法を紹介します。
例えばシート名が「1月」の場合、更新ボタンを作成したら「2月」というように次の月の名前にする方法です。
以下のコードをコピペしましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Sub 次月更新() Dim Ws As Worksheet Dim フラグ As Boolean Dim 月の名前 As String '来月が何月か調べる 月の名前 = Replace(ActiveSheet.Name, "月", "") + 1 '現在のシート名が「12月」の場合来月は1月 If 月の名前 = 13 Then 月の名前 = 1 End If フラグ = False 'すでに同じ月のシートが存在しないか For Each Ws In Worksheets If 月の名前 & "月" = Ws.Name Then フラグ = True Exit For End If Next If フラグ = False Then 'シートコピー作成し、シート名を変更する ActiveSheet.Copy After:=ActiveSheet ActiveSheet.Name = 月の名前 & "月" Else '同じシート名があった場合はメッセージのみ MsgBox "すでに来月と同じシート名が存在しています。" End If End Sub |
実際に先ほどのコードを試すと、以下の画像のようにシートをコピーしたうえでシート名次月になっています。
シートを削除する方法
次に、シートを削除する方法を紹介します。
以下のコードをコピペしましょう。
1 2 3 |
Sub シート削除() ActiveSheet.Delete End Sub |
実際に動作すると、シートの削除を行えます。
まとめ
今回はVBAを使用し、シートの追加や削除、シート名の変更方法について紹介しました。
特にシートを次月の名前に更新する方法は便利なので、実際の仕事でも使用しています。
Excelの機能を使いこなすと、仕事の効率化から大きな時間短縮に繋がります。
仕事術のスキルが増えるとプライベートの時間を時間を増やすことができますので、当サイトで得た知識を是非活用していきましょう。
以下のExcel記事もおすすめです。