【VBA】シートを複製して名前を書き換える!まずは書いてみよう!

シートの複製!
手でやっていませんか!?

まあ1つ2つ程度ならいいんですけど

例えば!
勤務表なんかで
毎月新しいシートを社員分作ったり…

そう!毎日!毎週!毎月!
定期的に決まったものを
毎回複製するのはめんどくさい!

まずはこの記事で
シートを1つ複製するVBAを覚えちゃおう!

おすすめ動画
複数のシートをコピーするマクロを作りながら
VBAを覚えていくシリーズ第4弾!

シートを複製してみよう!

シート情報を変数にセット

まずは複製させたいシートを
変数にセットしましょう!

例えばこの「テンプレート」シートを
複製させたいとき!

Sub変数 などについては
他記事やYouTubeで解説してるのでそちらを参考に!

このThisWorkbookに注目!

こいつはBookを操作する機能をたくさん持ってます!
「.」を続けて打つと機能一覧が出てきます!

「.」の後に出てくるWorksheets
シートを指定して、そのシート情報を呼び出します!

ThisWorkbook.Worksheets(“テンプレート”)
このBookファイルの . シートの中で(“テンプレート”)て名前のやつ

シートの指定方法は3つあるので
知りたい方は下記の記事を参考ください。

【VBA】ワークシートの選択方法と書き方

シートをコピーする!

では「テンプレート」シートを
シートの一番後ろに複製してみよう!

■変数にシート数をセット

まずシート数を数える!これ後で必要になります!
今回は「2」となりますね!
これが現時点で一番後ろのシート数になりますね!

ThisWorkbook.Worksheets.Count
このBookファイルの . シートの .

そしてこの現時点で「2」という値を
intLastSheetという変数にセットしてます。

■テンプレートシートを一番後ろにコピー

wsTemplate.Copy After:=ThisWorkbook.Worksheets(intLastSheet)
テンプレートシートを . コピーする 後ろに:=このBookの . シート(2番目の)

なんか英語みたい(笑)

この1文が実行されることで
3シート目に複製したシートができましたね!

シート名を書き換える!

あとは複製されたシートの名前を
「カボチャ」に書き換えてみよう!

ポイントは「intLastSheet + 1」ですね!

こうする事で
複製してできたシートの位置と
必ず一致
しますね!

複製前にどれだけシートがあっても
intLastSheetには複製前のシート数(最後の数)
がセットされます!

その後ろにシートが複製されるため
複製されたシートは
必ず「intLastSheet + 1」番目にいるのです!

ThisWorkbook.Worksheets(intLastSheet + 1).Name
このBookの . シート(2+1番目)の . 名前

これでカボチャと書き換わりましたね!

VbaForYoutube

YouTube動画で最後書き終わったVBAになります!
1つ以上のシートを複製するマクロを作る動画なので
気になる方は是非見て下さい!