ExcelVBA(マクロ)での新しいワークシートの作り方と名前の付け方/Sheetsコレクションの使い方

IT

VBAでは操作する対象であるセルだのグラフだのワークシートだのをオブジェクトと呼び、複数のオブジェクトの固まりをコレクションと呼びます。コレクションを操作するというのは、いくつものオブジェクトを便宜上同時に操作しているというのと同じ意味になります。
ここではワークシート=Sheetsコレクションに対して操作することで、新しいワークシートを作り、名前をつけてみたいと思います。

Advertisements

新しいワークシートの作成

新しいワークシートを作る
Sheets.add 場所
sheets13
通常新しいワークシートを作る場合、下部にある「ワークシートの挿入」を押しますが……。
sheets2
これをマクロでやってみます。sheets.add after:=activesheet今選んでいるワークシート後ろ新しいワークシート追加すると記述します。
sheets3
実行すると、選んでいたシートの右に新しいワークシートが作成されました。
sheets4
今度は上の式のafterbefore(前に)に変更してみます。
sheets5
実行すると、選んでいたワークシートの左に新しいシートが作成されました。

名前をつけたシートの作成

sheets6
今度はシート名を指定してみます。Sheets.Add before:=Sheets(“sheet22”)と記述します。
sheets7
sheet22の左に新しいワークシートが作成されました。
sheets8
もし新しいシートに任意の名前をつけたい場合、ちょっと手間がかかります。まずDimで変数を宣言します。
sheets9
さらにSet newsheet = Sheets.Add(before:=Sheets(“sheet22”))(変数newsheetに、新しく作るワークシートsheet22の前に作成)を代入すると記述します。before以降を()で閉じる必要があります。この変数は「新しく作ったシート」を意味する言葉になります。
sheets10
newsheetに対してnameメソッドでnew sheetという名前をつけたいので、newsheet.Name = “new sheet”と記述します。
sheets11
適当なシートを選んだ状態で、上記マクロを実行すると……。
sheets12
無事、new sheetという名前のシートが新たに作成されました。

一番右(最後尾)にシートを作る

sheetscount3
シートの指定は名前を指定する以外にも、番号で指定する方法もあります。
左から1,2,3,4..となるので、27番目のシートであれば、Sheets(27)となります。
sheetscount1
この数字をシートの総数と一致させれば、最後尾のシートを指定することができます。
SheetsオブジェクトのCountプロパティを取得すると、
sheetscount2
シートの総数を求めることができるので、
sheetscount4
これをシート番号として使用し、Sheets.Add after:=Sheets(Sheets.Count)とすることで、一番右に新しいシートを作ることが可能です。
やりたいことから方法を探すエクセルExcel操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。

コメント