VBAでは操作する対象であるセルだのグラフだのワークシートだのをオブジェクトと呼び、複数のオブジェクトの固まりをコレクションと呼びます。コレクションを操作するというのは、いくつものオブジェクトを便宜上同時に操作しているというのと同じ意味になります。
ここではワークシート=Sheetsコレクションに対して操作することで、新しいワークシートを作り、名前をつけてみたいと思います。
新しいワークシートの作成
新しいワークシートを作る
Sheets.add 場所
Sheets.add 場所
![sheets13](https://sunagitsune.com/wp-content/uploads/2020/03/sheets13-650x329.png)
通常新しいワークシートを作る場合、下部にある「ワークシートの挿入」を押しますが……。
![sheets2](https://sunagitsune.com/wp-content/uploads/2020/03/sheets2.png)
これをマクロでやってみます。sheets.add after:=activesheet(今選んでいるワークシートの後ろに新しいワークシートを追加する)と記述します。
![sheets3](https://sunagitsune.com/wp-content/uploads/2020/03/sheets3-650x332.png)
実行すると、選んでいたシートの右に新しいワークシートが作成されました。
![sheets4](https://sunagitsune.com/wp-content/uploads/2020/03/sheets4.png)
今度は上の式のafterをbefore(前に)に変更してみます。
![sheets5](https://sunagitsune.com/wp-content/uploads/2020/03/sheets5-650x330.png)
実行すると、選んでいたワークシートの左に新しいシートが作成されました。
名前をつけたシートの作成
![sheets6](https://sunagitsune.com/wp-content/uploads/2020/03/sheets6.png)
今度はシート名を指定してみます。Sheets.Add before:=Sheets(“sheet22”)と記述します。
![sheets7](https://sunagitsune.com/wp-content/uploads/2020/03/sheets7-650x332.png)
sheet22の左に新しいワークシートが作成されました。
![sheets8](https://sunagitsune.com/wp-content/uploads/2020/03/sheets8.png)
もし新しいシートに任意の名前をつけたい場合、ちょっと手間がかかります。まずDimで変数を宣言します。
![sheets9](https://sunagitsune.com/wp-content/uploads/2020/03/sheets9.png)
さらにSet newsheet = Sheets.Add(before:=Sheets(“sheet22”))(変数newsheetに、新しく作るワークシート(sheet22の前に作成)を代入する)と記述します。before以降を()で閉じる必要があります。この変数は「新しく作ったシート」を意味する言葉になります。
![sheets10](https://sunagitsune.com/wp-content/uploads/2020/03/sheets10.png)
newsheetに対してnameメソッドでnew sheetという名前をつけたいので、newsheet.Name = “new sheet”と記述します。
![sheets11](https://sunagitsune.com/wp-content/uploads/2020/03/sheets11-650x332.png)
適当なシートを選んだ状態で、上記マクロを実行すると……。
![sheets12](https://sunagitsune.com/wp-content/uploads/2020/03/sheets12-650x331.png)
無事、new sheetという名前のシートが新たに作成されました。
一番右(最後尾)にシートを作る
![sheetscount3](https://sunagitsune.com/wp-content/uploads/2020/04/sheetscount3.jpg)
シートの指定は名前を指定する以外にも、番号で指定する方法もあります。
左から1,2,3,4..となるので、27番目のシートであれば、Sheets(27)となります。
左から1,2,3,4..となるので、27番目のシートであれば、Sheets(27)となります。
![sheetscount1](https://sunagitsune.com/wp-content/uploads/2020/04/sheetscount1.jpg)
この数字をシートの総数と一致させれば、最後尾のシートを指定することができます。
SheetsオブジェクトのCountプロパティを取得すると、
SheetsオブジェクトのCountプロパティを取得すると、
![sheetscount2](https://sunagitsune.com/wp-content/uploads/2020/04/sheetscount2-650x307.jpg)
シートの総数を求めることができるので、
![sheetscount4](https://sunagitsune.com/wp-content/uploads/2020/04/sheetscount4.jpg)
これをシート番号として使用し、Sheets.Add after:=Sheets(Sheets.Count)とすることで、一番右に新しいシートを作ることが可能です。
![](https://sunagitsune.com/wp-content/uploads/2018/10/gui-2311261_1280.png)
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント