特定シートを指定個数分だけ複製する
- yuji fukami
- 2024年12月28日
- 読了時間: 2分
<概要>
今回は特定のシートを指定個数分コピーすることができる汎用プロシージャの紹介です。
シートのコピーの用途としては以下のようなものがあります。
・日報入力を日付別に入力する場合に、原本のシートから指定の年月のその月における日数分のシートを作成する。
・特定の月の日数同様、一年分の入力を行う場合に12ヶ月分の空っぽの原本シートを複製する。
この汎用。これは与える引数として複製元のシートをworksheetオブジェクトで指定し、あとは複製する個数及び複製後のシートの名前のテンプレートの名前できるようにしています。さらに、複製処理に時間がかかる場合も考慮してその進行状況をステータスバーに表示する機能のON/OFFも追加しております。
<実行例>
実行例におけるサンプルのコードは下記の通りです。
これを実行するにあてて、事前準備としてコピーするシートのシートオブジェクトの名前を「Sh01_原本」でも設定しておきます。

この状態で先ほどのサンプルのコードを実行すると、原本シートが合計10個作成されているのが確認できます。コピーした後のシートの名前は第3引数で与えてるTemplateSheetNameにアンダーバーを付けて数字の連番を与えたような名前にしており。


ちなみに、サンプルのコードをもう一度実行すると、先ほど一度コピーされた原本のシートが一度消去されて新たにコピーし直すという処理もできるようになっており、再度実行する前の事前処理等は不要になっております。
ちなみに、イミディエイトウィンドウおよびステータスバーにもその進行状況が表示されているので、これは実際に実行して目視で確認してみてください。
また。この汎用プロシージャ「CopySheets」には、以前に紹介した進行状況をステータスバーに表示する汎用プロシージャである「ShowStatusBarProgress」も利用しています。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。
Comentarios