VBAでExcelのシートを追加する方法を知りたい方へ。
大量にシートを追加しなければいけない場合や別のVBAと連動させてExcelのシートを自動追加したい場合ってありますよね?
![ホームページ・インフラ担当が副業やるってよ!](https://m32006400n.xsrv.jp/wp-content/uploads/2023/03/205437d4862ecda7abe6ca8da7998d90.webp)
それではいってみましょー。
Excel VBAでシート追加する2つの方法
ExcelでVBAを使って新たにシートを追加する方法は2つです。
![](https://m32006400n.xsrv.jp/wp-content/uploads/2022/10/7cb69c245fbc719356a96bcf6af45097.png)
- Addメソッドを使う方法
- Copyメソッドを使う方法
AddメソッドとCopyメソッドは、Excelでシートの追加やコピーに関連する操作を行うための一般的な方法です。
他のプログラミング言語や外部ライブラリを使用してExcelファイルを操作する場合、異なる方法でシートを追加することができるかもしれませんが、純粋にVBAのコードだけでシート追加を実装するための方法ははAddメソッドとCopyメソッドを使うしかありません。
じゃあ、具体的にコードを書きながら説明していきたいと思います。
Addメソッドを使う方法
AddメソッドはExcelでシートを追加したいときに使う基本の方法です。
すんごいザックリ言うと、VBAを使ってExcelのシートをシンプルに追加したいのであればAddメソッドを一択です。
Addメソッドは、「Workbooks」「Worksheets」「Sheets」にくっつけてコードを書くことで、シートを追加することができます。
具体的なコードの例として、Addメソッドを使ってExcelのシートを追加するコードとしては下記のようなものがあります。
'Workbooks.Add メソッドを使用して新しいシートを追加する方法
Sub AddSheet1()
Sheets.Add After:=Worksheets(Worksheets.Count)
End Sub
上記のコードは既存のシートの後に新しいシートを追加(最後のシートの後に新しいシートを挿入)するコードです。
シートの名前を変更するには、Nameプロパティを使用します。新しいシートが挿入された後、ActiveSheetオブジェクトを使用してそのシートにアクセスし、名前を変更することができます。
'新しいシートを挿入して「MyNewSheet」にシート名を変更する方法
Sub InsertAndRenameSheet()
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "MyNewSheet"
End Sub
上記のコードでは、新しいシートを挿入し、その名前を「MyNewSheet」に変更することができます。
では、今度はSheets.AddではなくWorksheets.Addを使った方法について簡単にお話しますね。
'Worksheets.Add メソッドを使用して特定の位置に新しいシートを追加する方法
Sub AddSheet2()
Worksheets.Add(After:=Worksheets("Sheet1")).Name = "NewSheet"
End Sub
上記のコードは「Sheet1」の後に新しいシートを追加し、その名前を「NewSheet」に設定するコードです。また、「Worksheets.Add before:=Worksheets(“Sheet1”), Count:=2」というコードにすることで、「Sheet1」シートの前に2つシートを追加したりするコードを作れたりもします。
'Sheets.Add メソッドを使用して新しいシートを追加した後に名前を指定する方法
Sub AddSheet3()
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "MyNewSheet"
End Sub
上記のコードは、既存のシートの後に新しいシートを追加し、その名前を「MyNewSheet」に設定するコードです。
Sheets.AddメソッドやWorksheets.Addメソッドを使って、指定した位置にシートを追加することができたり、Addの戻り値を使って、追加したシートに名前や色などを設定することができます。
また、別ブックにシートを追加する場合は、ブックオブジェクトを指定してSheets.AddメソッドやWorksheets.Addメソッドを実行する。
Copyメソッドを使う方法
Copyメソッドを使うことで、今あるシートをコピーして追加することができます。
'既存のシートをコピーして新しいシートを作成する方法
Sub CopySheet1()
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
End Sub
上記のコードは、今開いているExcelブック内にあるシート名「Sheet1」をコピーして新しいシートとして追加することができるコードです。
'別のExcelブックにあるシートをコピーして追加する方法
Sub CopySheet2()
Workbooks.Open ("C:\path\to\your\template.xltx")
ActiveSheet.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ActiveWorkbook.Close False
End Sub
上記のコードは、指定したパスにあるExcelデータを開き、現在開いているExcelブックにそのシートをコピーして追加するコードです。
一気に10シート追加する方法
業務において、一気に複数のシートを追加したい場合なんかもあると思います。単純作業で難しくはないのですが、手間でメンドクサイですよね?
下記のコードをコピペしてちょっとカスタマイズすれば、数秒で一気に10シート追加することができます。
'一気に10シート追加する方法
Sub AddDataSheets()
Dim i As Integer
For i = 1 To 10
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "データ一覧" & i
Next i
End Sub
出力したいシート数に応じて「For i = 1 To 10」の部分を変更すれば、一気に出せるシートの数を変更できます。
「”データ一覧” & i」としているのは連番で出力したいから設定しています。この点を変更すれば好きな名称でシートを出力することが可能です。
まとめ
この記事では、Excel VBAでシートを追加するための方法を解説しました。シート追加の基本から応用、よく使われる方法まで、幅広くカバーした内容になっているので、あなたの疑問もきっと解決していると思います。
AddもCopyもどちらのコードも簡単に書けるので、初心者でも挑戦しやすいです。ぜひ一度試してみてください。
最後に記事で紹介した内容をまとめます。
- AddメソッドやCopyメソッドを使ったシートの挿入と名前の変更について
- シート追加の基本と応用について
- よく使われる連番でのシート追加方法について
これらの情報を使えば、Excel VBAでのシート操作が一段とスムーズになるでしょう。ぜひ実践してみてください。
この記事を気に入っていただけたら、コメントやシェアをしていただけるととても励みになります!これからも、パソコンの作業効率を上げる方法やパソコンのちょっとした疑問や困ったを解決情報を発信していきますので、たまにサイトをチェックしていただけると、とっても嬉しいです(‘ω’)ノ。
SNSのフォローボタンを、ポチってくれるとめっちゃ嬉しいです👍
ではでは、最後までご覧いただきありがとうございました。
Twitter:@Uriuri_writer
Follow @Uriuri_writer
Instagram:@uriuri_writer
Instagram
コメント