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

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日: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 ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




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


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



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