Excelシートを追加・挿入するAddメソッドの使い方

vbaaddeyecatch

エクセルVBAでシートを追加挿入するにはAddメソッドを使用します。
VBAではシートの追加はよく使います。挿入場所、挿入枚数、名前の付け方など覚えておくと便利です。

こんにちは、じゅんぱ店長(@junpa33)です。

今回は、エクセルでワークシートの枚数を増やしたい場合にどのようにすればよいかを説明します。

VBAコード的には、1・2行のコードですので簡単に覚えられると思います。

また同時に、挿入位置の指定方法やシート名付けの記述方法も覚えておきましょう。

シートの追加・挿入にはAddメソッドを使う

vbaaddp007

エクセルの初期設定はシート1枚だけが表示されるようになっています。

エクセルの作業で明らかにシート数が単に不足している場合は、まず初期設定を変更することをおすすめします。

excelsheetsseteyecatch 初期設定のシート数を変更する!ワークシートの増やし方

ここでのVBAによるシート追加は、「〇〇用のシートを追加挿入する」という目的ありきの場合を前提にしています。

その都度シートを単に追加したのであればショートカット「Alt」+「I」+「W」を使うと即OKです。

シートの追加を「マクロの記録」でコード化

分かりやすいように、マクロの記録を使ってVBAコードを記述してみます。

vbaaddp001
マクロの記録

「Sheet1」を表示した状態でシート選択タブの右にある「+」ボタンをクリックしました。

「Sheet1」の右隣に「Sheet4」が追加されました。

vbaaddp002
Sheet4が追加
VBA
Sub Macro9()
'
' Macro9 Macro
'

'
    Sheets.Add After:=ActiveSheet
End Sub

シートの追加挿入で記述する必要最低限のVBAコードは、1行だけの数文字ということです。

コードを解説すると
  • 「Sheets」はこのままでも「Worksheets」と表示してもOKです。
  • 「Add」は追加挿入のためのメソッド(指令のようなもの)になります。
  • 「After:=ActiveSheet」は、「Sheet1」を表示状態で追加挿入の操作をしたので、「ActiveSheet」=「Sheet1」としてその後にシートが挿入されました。

Addメソッドの構文

Addメソッドの記述方法を整理しておきます。

Addメソッドの構文

Worksheets.Add ( Before, After, Count, Type )

引数・・Before, After, Count, Type・・の解説

Before・・・指定したシートの前

After・・・・指定したシートの後

  <BeforeとAfterともに省略した場合はActiveSheetの直前に挿入されます。>

Count・・・追加するシートの枚数を指定することが出来ます。

  <省略した場合は1枚を追加します。>

Type・・・・殆ど使用しないので、無視してもOKです。

Addメソッドを使って実際にVBA記述してみる

一番ありそうなサンプルとして、

エクセルで作成されたテンプレート1枚だけのエクセルファイルで、

このテンプレートを新しいシートに丸々コピペするために、VBAを使ってシートを増やしたい場合の想定です。

vbaaddp003
お題のエクセルファイル

追加したいシートは1枚の場合(原紙の右側に追加します)

右隣に1シート追加する
VBA
Sub シート追加1()

Worksheets.Add after:=Worksheets("テンプレート")

End Sub
vbaaddp004
シート1枚追加

追加したいシートが3枚の場合(原紙の右側に追加します)

右隣に3シートを追加する
VBA

Sub シート追加2()

Worksheets.Add after:=Worksheets("テンプレート"), Count:=3

End Sub
vbaaddp005
シート3枚追加

名前付きのシートを「Sheet2」の前に追加する場合

「東京」シートをSheet2の左に追加する
VBA
Sub シート追加3()

Worksheets.Add(before:=Worksheets("Sheet2")).Name = "東京"

End Sub
vbaaddp006
「東京」シートの挿入追加

このVBAコードでもシート名を変更することが出来ます。

VBA
Sub シート追加3()

Worksheets.Add before:=Worksheets("Sheet2")
ActiveSheet.Name = "東京"

End Sub

名前を付けるのはNameプロパティを使用します。

シートを追加したその時は、追加されたそのシートがActiveSheetになっていますので、直ちにNameプロパティで名前を付けることが出来ます。

次の操作でフォーカスが失われたらこの操作は出来ません。

シートの追加挿入のまとめ

vbaaddp008

シートの追加や挿入は、エクセルVBAでプログラムを作成して行く上では非常に頻繁に出てきます。

難易度は高くありませんので、シートの操作の一つとしてサクッとこなしていきましょう。

密接に関連した項目として(シートの)名前付けがありますので合わせて知っておくと良いでしょう。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min