Excel VBAでマクロを組むとき、新しいシートを挿入する方法について紹介します。
コード
新しいシートを挿入する
単に新しいシートを挿入するだけなら次のコードで可能です。
1 2 3 4 5 |
Sub MakeSheet() Worksheets.Add End Sub |
この場合、新しいシートはアクティブシートの左隣に作成されます。
シート名を指定して新しいシートを挿入する
シートを挿入すると名前を変更することも多いでしょうから、
先に名前を指定する方法をメモしておきます。
1 2 3 4 5 6 |
Sub MakeSheet2() Worksheets.Add ActiveSheet.Name = "新しいシート" End Sub |
しかし、この場合、シート名を記載するには毎回コードを変更する必要があります。
それは手間がかかって面倒なので、シートを挿入したときにユーザにシート名を入力させる機能を加えます。
シートを挿入し、シート名を入力させる
新しいシートを挿入し、シートの名前をユーザに入力させます。
1 2 3 4 5 6 7 8 |
Sub MakeSheet3() Worksheets.Add Dim SheetName As String SheetName = InputBox("シート名を入力してください") ActiveSheet.Name = SheetName End Sub |
SheetNameという文字列型(String)の変数を宣言し、
SheetNameにInputBox関数で入力されたシート名を保存します。
最後にアクティブシートの名前にSheetNameに保存されたシート名を渡します。
末尾に新しいシートを挿入する
ここまでの方法ではシートがアクティブシートの左隣に挿入されます。
個人的には新しいシートは一番右側に挿入したいので、
末尾に新しいシートを挿入する方法を記載します。
1 2 3 4 5 |
Sub MakeSheet4() Worksheet.Add After:=Sheets(Worksheets.Count) End Sub |
” Worksheet.Add”に続いて”After”で挿入位置を指定します。
指定する場所はその後に続く”Sheets(Worksheets.Count)”です。
“Worksheets.Count”はシートの数を数えるもので、
Worksheetコレクションの中にあるCountプロパティを使用しています。
ちなみに、”After”を”Before”に打ち換えれば指定したシートの左隣に追加することもできます。
まとめ・マクロの勉強にお勧めの本
今回はシートを挿入する方法について、
実際に業務に使うときに欲しくなって作成した機能を踏まえながら記載しました。
はじめのうちは、このように本当に小さな機能だけを持たせたマクロを作るのが良いでしょう。
小さな機能をたくさん積み重ねることで複雑な処理をするマクロも作れるようになります。
日々の積み重ねによってたどり着けます。
Excel VBAを勉強する上で使用している本を紹介します。
プログラミングの基礎知識から書いてくれていることと、
目次ので相当に整理されて記載されているので、
知りたい機能を先に読んでからすぐに試すことができます。
3000円ほどの値段がしますが、
この本に書かれている内容をマスターすることで、
業務に割かれる時間を非常に削ることができます。
たった3000円で得られる時間は1年間数十時間以上になるでしょう。
Excelでデータを扱う仕事をする方、つまり大多数の社会人にとって、間違いなく役に立ちます。
コメント