TOPページへ

新しいワークシート(Sheet)をブック(Book)に追加するExcel VBAの記述

Excel VBAExcel のテクニカル情報サイトです。
Excelは、VBAを使うとありとあらゆる処理ができ、とても便利です!
そんな、エクセルの知識や実用的なVBAマクロなどをたくさん紹介していきます!


このページでは、新しいワークシート(Sheet)をブック(Book)に追加するExcel VBAの記述についてまとめています。





RSS情報アンテナ表示

【サイト管理人よりひと言】
Excel VBA の素晴らしさに惹かれてこのサイトを作りました。 ExcelでVBAプログラミングが組めるようになると、どんな面倒な処理でも VBAで処理をさせることができるようになります。 私の場合、事務系の仕事の面倒な処理は全てExcelにやらせています。 Excel VBAに出会ってからは驚くほど仕事の効率が上がりました。 今まで数時間かかっていた事務処理の仕事が、わずか数秒で終わったりしています。 本当にエクセルは素晴らしい表計算アプリケーションソフトです。

新しいワークシート(Sheet)をブック(Book)に追加するExcel VBAの記述

Excel(エクセル)のブック(Book)にワークシートを追加したい場合は、
ワークシート(Sheet)タブ上から右クリックメニューを表示させて、
「挿入」を選び、ワークシートを追加すれば良いのですが、
Excel VBAワークシートの追加操作を行うVBAのプログラムを
作りたい場合があるかもしれません。今回は、エクセルのブックに
新しいワークシートを追加したい場合、Excel VBAでどのように
記述すればいいのか教えたいと思います。その記述は、割と簡単です。



[記述例] 新しいワークシートを追加するVBA記述
Sub test()

    'アクティブシートの後ろに新しいシートを追加する
    Worksheets.Add after:=ActiveSheet

    'メッセージを表示
    MsgBox "アクティブシートの後ろに新しいシートを追加しました。"

End Sub
[動作とプログラムの説明]
動作の説明です。上記のプログラムを実行すると、
ブックのアクティブなシートの後ろに新しいシートを追加し、
追加したことをメッセージで表示します。
Worksheets.Add」部分が新しいシートを追加する命令。
その後の「after」がアクティブなシートの後ろに、
新しいシートを追加するという意味です。
もし、アクティブなシートの前に新しいシートを追加したい場合は、
「Worksheets.Add」部分の後ろの「after」を「Before」にすれば良いです。
こんな感じの記述です。

[記述例] 新しいワークシートをアクティブなシートの前に追加するVBA記述
Sub test()

    'アクティブシートの前に新しいシートを追加する
    Worksheets.Add Before:=ActiveSheet

    'メッセージを表示
    MsgBox "アクティブシートの前に新しいシートを追加しました。"

End Sub
もし、アクティブシートの前後に追加するのではなく、
指定のシートの前後の位置に追加したい場合は、
指定のアクティブシートに切り替えてから、「after」や「Before」を使うか、
VBA記述の「ActiveSheet」部分を次のように指定してください。
こんな感じの記述です。

[記述例] 新しいワークシートを指定したシートの後ろに追加するVBA記述
Sub test()

    'シート1(sheet1)の後ろに新しいシートを追加する
    Worksheets.Add after:=Worksheets("sheet1")

    'メッセージを表示
    MsgBox "シート1(sheet1)の後ろに新しいシートを追加しました。"

End Sub
また、「Worksheets.Add Before:=ActiveSheet」の後に、
,Count:=任意の枚数」を指定することで、追加する枚数も指定できます。
VBAの記述は、こんな感じ。

[記述例] 新しいワークシートをアクティブなシートの後ろに3枚追加するVBA記述
Sub test()

    'アクティブシートの後ろに新しいシートを3枚追加する
    Worksheets.Add after:=ActiveSheet, Count:=3

    'メッセージを表示
    MsgBox "アクティブシートの後ろに新しいシートを3枚追加しました。"

End Sub
ちなみに、「after」や「Before」を省略し、
「Worksheets.Add :=ActiveSheet」と記述すると、
アクティブシートの前に追加されます。VBAではなく、手作業でシートを
追加すると、アクティブシートの前に追加されますよね。
それと同じように省略するとアクティブシートの前に追加されます。
また、「after」や「Before」を1命令で同時にやろうとしてもできません。
もし、前後に追加したい場合は、1命令ずつやりましょう。




 

カテゴリ:ワークシート操作関係VBAマクロ 



サイト内検索



Excel NAVI(エクセル ナビ)のトップページへ移動



当サイトのプライバシーポリシーと免責事項について
当サイトの文章、記事、内容、画像、写真などの無断利用、無断転載を禁じます。
Copyright (C) Excel NAVI(エクセル ナビ) All Rights Reserved.