【マクロVBA】シート総まとめ!シートを作成・名前を付ける・ブック内外へコピー・移動・削除する。

シート操作

シートを操作する中で様々な操作方法があります。
シートのアクティブについては過去の記事で説明しています。☟

【VBA知識 12】別のシートをアクティブ・選択する方法について ► 独学エクセル塾 (dokugakuexcel.com)

今回はシート操作の中でも

シートを作成する・ブック内・外へコピーする・削除する操作をご紹介します。


シートをアクティブにする操作に加え、今回の記事を身につけると

シート関係の操作は網羅できるようになります。

ぜひ参考にしてみてください。

それでは見ていきましょう。




■シートを作成する

・通常作成

ではまず、シートの作成を行いたいと思います。

早速シートを作成するプログラムを見てみましょう。

Worksheets.Add

こちらで新規のシートを作成できます。
ではプログラムを作成してみましょう。

Sub シートの作成()

Worksheets.Add

End Sub

では実行してみます。

実行前は「Sheet1」「Sheet2」しかない状態です。

この状態で実行すると…

あたらしく「Sheet3」が作成できました。

・指定したシートの前・後にシートを作成

今度は指定したシートの前後にシートを作成してみましょう。


シート作成は先ほどの「Worksheets.Add」で構いません。
この後にプログラムを追記していきます。

ではプログラムを見ていきましょう。

前に追加:Worksheets.Add Before:=Worksheets(“指定シート名”)
後に追加:Worksheets.Add After:=Worksheets(“指定シート名”)

単語の意味通り前に追加したいときは「Before」で後に追加したいときは「After」です。
では見本を通して説明したいと思います。

「基準」というシートを指定シートとして

「基準」シートの前後に新しいシートを追加してみましょう。

「基準」シートの前に新しいシートを追加するプログラムはこのようになります。

Sub シートの作成()

Worksheets.Add Before:=Worksheets(“基準”)

End Sub

実行すると…

うまく機能していますね。

対して「基準」シートの後に新しいシートを追加するプログラムはこのようになります。

Sub シートの作成()

Worksheets.Add After:=Worksheets(“基準”)

End Sub

実行すると…

どちらもうまく機能していますね。

・○番目にシートを追加する

今度は番号を入力して指定した番号の順にシートを作成してみましょう。
プログラムは下記の通りです。

指定番号前に追加:Worksheets.Add Before:=Worksheets(“数値”)
指定番号後に追加:Worksheets.Add After:=Worksheets(“数値”)

では下記の見本をもとに説明しています

今回は2番目にシートを追加してみましょう。
つまり「Sheet1」と「Sheet2」の間に新しいシートが追加していきます。

ではプログラムは下記の通りです。

Sub シートの作成()

Worksheets.Add After:=Worksheets(1)

End Sub

このプログラムで1番目のシートの後に新しいシートを追加することができます。
実行の結果はこのようになります。

うまく機能していますね。

■シートに名前を付ける

今度はシートに名前を付けてみましょう。
プログラムはこのようになります。

ActiveSheet.Name = “プログラム名”

では実践です。

今回は「Sheet2」に「あいうえお」と名前を付けてみましょう

プログラムは下記の通りです。

Sub シートの名前の変更()

ActiveSheet.Name = “あいうえお”

End Sub

では実行してみましょう。
実行した結果はこちらです。

あいうえおに変更することができました。

■シートをコピーする

・ブック内にシートをコピーする

次はシートのコピーです。
プログラムはこのようになります。

指定シート前にコピー

Worksheets(“シート名”).Copy Before:=Worksheets(“指定シート名”)


指定シート後にコピー

Worksheets(“シート名”).Copy After:=Worksheets(“指定シート名”)

では実践です。
下記の「あいうえお」のシートを基準に「あいうえお」の後にコピーしてみましょう。

プログラムはこのようになります。

Sub シートのコピー()

Worksheets(“あいうえお”).Copy After:=Worksheets(“あいうえお”)

End Sub

実行した結果がこちらです。

コピーができました。
Beforeでプログラムを組むと「あういえお」の前にコピーできます。

さらにシートの作成で紹介した番号でシートのコピーも可能です。


例えば1番最初にシートをコピーしたいときはこのようになります。

Sub シートの作成()

Worksheets(“あいうえお”).Copy Before:=Worksheets(1)

End Sub

・別のブックへコピーする

先ほどは同じブック内での作業でしたが今度は別のブックにコピーしてみましょう。
プログラムはこのようになります。

指定シート前にコピー

Worksheets(“シート名”).Copy Before:=Workbooks(“コピー先のブック名”).Worksheets(”指定シート名”)


指定シート後にコピー

Worksheets(“シート名”).Copy After:=Workbooks(“コピー先のブック名”).Worksheets(”指定シート名”)

今回は「Book1のあいうえお」のシートを「Book2の先頭」にコピーしてみましょう。

プログラムはこのようになります。

Sub シートのコピー()

Worksheets(“あいうえお”).Copy Before:=Workbooks(“Book2.xlsx”).Worksheets(1)

End Sub

それでは実行してみましょう。

Book2の先頭に「あいうえお」のシートをコピーすることができました。

■シートを移動する

次はシートの移動です。
移動はコピーとほとんど同じプログラムになります。

プログラムはこのようになります。

指定シート前に移動

Worksheets(“シート名”).Move Before:=Workbooks(“コピー先のブック名”).Worksheets(”指定シート名”)


指定シート後に移動

Worksheets(“シート名”).Move After:=Workbooks(“コピー先のブック名”).Worksheets(”指定シート名”)

上記は別のブックへの移動ですが


・Workbooks(“コピー先のブック名”)を外せば同じブック内での移動。
・Worksheets(番号)で指定番号へ移動

など、これまで学んで来た作業が移動で応用できます。

■シートを削除する

最後にシートを削除する方法について説明します。
これまで「Copy」「Add」「Move」などを使用してきましたが
削除には「Delete」を使用します。

プログラムはこのようになります。

Worksheets(“シート名”).Delete

では下記の「あいうえお」を削除してみましょう。

プログラムは下記の通りです。

Sub シートの削除()

Worksheets(“あいうえお”).Delete

End Sub

実行すると…

「あいうえお」のシートが削除できました。

⬛︎公式の説明

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

Sheets.Add メソッド (Excel) | Microsoft Learn

Worksheet.Name プロパティ (Excel) | Microsoft Learn

Worksheet.Copy メソッド (Excel) | Microsoft Learn

Worksheet.Delete メソッド (Excel) | Microsoft Learn

■まとめ

いかがだったでしょうか。
これでシート操作はマスターできたと思います。

シートの操作ができればVBAでできることの幅が広がるので

ぜひ今回の記事を参考にしてみてください。

次回のはVBAで合計を求める方法についてまとめています。記事はこちらから☟

【マクロVBA知識 18】合計・総和をSUM・SUMIF・SUMIFSで求める ► 独学エクセル塾 (dokugakuexcel.com)

それでは次回の記事でお会いしましょう。