VBA入門
シートの挿入、名前の変更(Add,Name)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2021-09-26

第65回.シートの挿入、名前の変更(Add,Name)


マクロVBAでシートを挿入(新規追加)したり、名前を変更する場合の解説です。
シートを挿入すれば、大抵の場合はシート名も変更することになりますので、
シート挿入→シート名変更、この一連のVBAをセットで覚えておきましょう。



シートの挿入

VBAでシートを挿入するには、Sheets.AddメソッドWorksheets.Addメソッドを使います。

Sheets.Add Before, After, Count, Type
または、
Worksheets.Add Before, After, Count, Type



Before 指定したシートの直前に、新しい シートを追加します。
After 指定したシートの直後に、新しいシートを追加します。
Count 追加するシートの数を指定します。
既定値は 1 です。
Type ワークシートの種類を指定します。
既定値は xlWorksheet です。
Worksheets.Addの場合は、xlWorksheet以外は指定できません。

名前付き引数です。

戻り値
挿入された、
ワークシート、グラフ シート、またはマクロ シートを表すオブジェクト型 (Object) の値

Before、After
ともに省略すると、アクティブシートの直前に挿入されます。

Count
追加するシートの数を指定します。
既定値は選択したシートの数です。

複数シートを同時に追加した場合、戻り値は最後に追加されたシートのオブジェクトになります。
この場合、その後のマクロが非情に書きづらくなります。
複数シートを追加する場合でも、1シートづつ追加するようにした方が良いでしょう。
したがって、この引数はあまり使う事が無いと思います。

Type
ワークシートの種類を指定します。

xlChart グラフ
xlDialogSheet ダイアログ シート
xlExcel4IntlMacroSheet Excel バージョン 4 International Macro シート
xlExcel4MacroSheet Excel バージョン 4 マクロ シート
xlWorksheet ワークシート

既定値は xlWorksheet 、つまりワークシートです。
したがって、ほとんどの場合でこの引数は指定しません。

Worksheets.Addの場合は、xlWorksheet以外を指定するとエラーになります。

Addメソッドの使用例.
Sheets.Add
アクティブシートの直前にワークシートが追加されます。

Sheets.Add After:=Sheets(Sheets.Count)
シートの最後にワークシートが追加されます。


シートの名前変更

VBAでシート名を変更するには、
シートのオブジェクト.Nameプロパティ
このプロパティの値を変更します。

シートのオブジェクト.Name = "名前"

シートのオブジェクトは、
Sheets(インデックス)
Worksheets("シート名")
オブジェクト変数・・・Worksheet型
これらにより指定されたものになります。

Nameプロパィの使用例
Worksheets(1).Name = "名前"


シート挿入、名前変更の実践例



Dim ws As Worksheet
Set ws = Sheets.Add(After:=Sheets(Sheets.Count))
ws.Name = "新規シート"

With Sheets.Add(After:=Sheets(Sheets.Count))
  .Name = "新規シート"
End With

シートの最後に、"新規シート"というワークシートを追加しています。

Sheets.Addの戻り値がオブジェクトなので、
前者は、戻り値をそのままオブジェクト変数に入れて使用しています。
後者は、戻り値をWithで受けとって使用しています。

どちらが良いという事もなく、
挿入されたシートを使う範囲が狭ければWithを使うことで変数宣言の必要性もなく記述が簡潔になります。
その後に色々と使うようであればオブジェクト変数に入れたほうがVBAが書きやすい場合が多いでしょう。




同じテーマ「マクロVBA入門」の記事

第62回.「On Error Resume Next」とErrオブジェクト
第63回.ブックを開く(Open,Add)
第64回.ブックを閉じる・保存(Close,Save,SaveAs)
第65回.シートの挿入、名前の変更(Add,Name)
第66回.シートのコピー・移動・削除(Copy,Move,Delete)
第67回.総合練習問題7
第68回.シートの保護、ブックの保護(Protect)
第69回.シートの非表示(Visible,Hidden)
第70回.ウィンド枠の固定(FreezePanes)
第71回.印刷(PrintOut)
第72回.印刷プレビュー(PrintPreview)


新着記事NEW ・・・新着記事一覧を見る

TOROW関数(配列を横1行の配列にして返す)|エクセル入門(2022-10-31)
TOCOL関数(配列を縦1列の配列にして返す)|エクセル入門(2022-10-31)
CHOOSECOLS関数(配列から複数の指定された列を返す)|エクセル入門(2022-10-29)
CHOOSEROWS関数(配列から複数の指定された行を返す)|エクセル入門(2022-10-29)
WorksheetFunctionの効率的な使い方とスピル新関数の利用|VBA入門(2022-10-27)
VSTACK関数(配列を縦方向に順に追加・結合)|エクセル入門(2022-10-25)
HSTACK関数(配列を横方向に順に追加・結合)|エクセル入門(2022-10-25)
LAMBDA以降の新関数の問題と解説(配列操作関数編)|エクセル入門(2022-10-24)
LAMBDA以降の新関数の問題と解説(ヘルパー関数編)|エクセル入門(2022-10-24)
LAMBDA以降の新関数の問題集|エクセル入門(2022-10-24)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.マクロって何?VBAって何?|VBA入門
9.エクセルVBAでのシート指定方法|VBA技術解説
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ