シートの複製!
手でやっていませんか!?
まあ1つ2つ程度ならいいんですけど
例えば!
勤務表なんかで
毎月新しいシートを社員分作ったり…
そう!毎日!毎週!毎月!
定期的に決まったものを
毎回複製するのはめんどくさい!
まずはこの記事で
シートを1つ複製するVBAを覚えちゃおう!
VBAを覚えていくシリーズ第4弾!
シートを複製してみよう!
シート情報を変数にセット
まずは複製させたいシートを
変数にセットしましょう!
例えばこの「テンプレート」シートを
複製させたいとき!
Sub や 変数 などについては
他記事やYouTubeで解説してるのでそちらを参考に!
このThisWorkbookに注目!
こいつはBookを操作する機能をたくさん持ってます!
「.」を続けて打つと機能一覧が出てきます!
「.」の後に出てくるWorksheetsで
シートを指定して、そのシート情報を呼び出します!
→このBookファイルの . シートの中で(“テンプレート”)て名前のやつ
シートの指定方法は3つあるので
知りたい方は下記の記事を参考ください。
シートをコピーする!
では「テンプレート」シートを
シートの一番後ろに複製してみよう!
■変数にシート数をセット
まずシート数を数える!これ後で必要になります!
今回は「2」となりますね!
これが現時点で一番後ろのシート数になりますね!
→このBookファイルの . シートの . 数
そしてこの現時点で「2」という値を
intLastSheetという変数にセットしてます。
■テンプレートシートを一番後ろにコピー
→テンプレートシートを . コピーする 後ろに:=このBookの . シート(2番目の)
なんか英語みたい(笑)
この1文が実行されることで
3シート目に複製したシートができましたね!
シート名を書き換える!
あとは複製されたシートの名前を
「カボチャ」に書き換えてみよう!
ポイントは「intLastSheet + 1」ですね!
こうする事で
複製してできたシートの位置と
必ず一致しますね!
複製前にどれだけシートがあっても
intLastSheetには複製前のシート数(最後の数)
がセットされます!
その後ろにシートが複製されるため
複製されたシートは
必ず「intLastSheet + 1」番目にいるのです!
→このBookの . シート(2+1番目)の . 名前
これでカボチャと書き換わりましたね!
VbaForYoutube
YouTube動画で最後書き終わったVBAになります!
1つ以上のシートを複製するマクロを作る動画なので
気になる方は是非見て下さい!