【EXCEL:VBA】ひな形シートをコピーして大量に新規ブックを作成したい

ひな形シートをコピーして大量に新規ブックを作成したい

この記事では、ひな型のEXCELシートをコピーして、大量に新規ブックを作成する方法について説明しています。

 

定形のひな形シートを利用して、新規ブックを大量に作成したい場合に使えます。

 

また、ひな形の一部は配布する相手によって、変えることができます。

 

 

例えば、アンケート内容をひな形シートで作成しておき、配布する対象者毎に名前や従業員番号などを変更して、新規ブックを作成することができます。

 

しかも、定期的に配布する必要があるアンケートや勤怠表などをひな形シートとして作成しておけば、コピーしたいひな形を切り替え可能となっています。

 

一度この機能を作成しておけば、たくさんの従業員や顧客に配布する資料を簡単に大量に一気に作成することできるようになります。

 

あなたが用意するのは、配布先リストとひな形シートだけです。

 

あとは、VBAプログラムを実行すれば、一気に資料作成を終わらせることができます。

 

それでは、ひな形のEXCELシートをコピーして、大量に新規ブックを作成する機能を作成していきましょう。

 

困っている女性

すべての従業員に定期的に配布する資料があるの。

困っている女性

その資料のひな形を作成し、そのひな形を手でコピーして、従業員毎に氏名や従業員番号を入力して、従業員毎のファイル名をつけて保存する必要があるの。

困っている女性

そんな面倒な作業を、短時間で間違えずにやる必要があるの。なんとかならないの!?
それなら、配布先リストとひな形シートさえ用意すれば、あとはVBAプログラムが高速で間違えずに新規ブックを大量に作成してくれるよ。

解決する男性

しかも、配布先毎に必要情報の入力を切り替えながら新規ブックを作成してくれるよ。

解決する男性

困っている女性

それそれ、早く教えてよ。

 

ひな型のEXCELシートをコピーして、大量に新規ブックを作成する機能に必要なものを、1つ1つ順番に説明していきます。

1.配布先リストを記入するシートを作成する

まず、新規ブックを作成する「作成先フォルパス」、コピーしたい「ひな形シート名」、作成したい新規ブックに必要な情報の「配布先リスト」を入力する欄を作成します。

「メイン」シートを作成する

「メイン」シートを作成する

「メイン」シートを作成する

  1. 「メイン」という名前のシートを作成します。
  2. 1行目に「作成先フォルダパス」と「ひな形シート名」のタイトル行を作成します。
  3. 2行目に「作成先フォルダパス」と「ひな形シート名」を入力する欄を作成します。
  4. 3行目に「作成ファイル名」と「シート名」のタイトル行を作成します。
  5. 4行目以降は、「作成ファイル名」と変更したい「シート名」を入力する欄を作成します。
  6. C列からL列の1行目と2行目のセルを結合して、「差込位置」のタイトル行を作成します。
  7. C列からL列の3行目にひな形シートの差込したいセル位置を入力する欄を作成します。
  8. C列からL列の4行目以降は、差込したいセル位置に入力したい値を入力する欄を作成します。

 

ちなみに、ひな形に差込したい情報は最大10個まで指定が可能です。

差込したい情報がない場合、入力する必要はありません。

 

2.ひな形シートを作成する

次に、コピーしたいひな形シートを好きなシート名で作成します。

「ひな形」シートを作成する

ひな形シートを作成する

ひな形シートを作成する

ひな形シートは、好きなレイアウトで作成します。

サンプルとして、「アンケートA」というシート名でアンケートを作成しました。

  1. B3セルには、「部署名」を差込できる欄を用意しました。
  2. C3セルには、「従業員番号」を差込できる欄を用意しました。
  3. D3セルには、「氏名」を差込できる欄を用意しました。

 

また、ひな形シートは好きなだけ準備しておいて問題ありません。

利用したいひな形シート名を「メイン」シートで指定すれば、そのひな形シートをコピーして新規ブックが作成されます。

顧客に配布する資料の場合、会社名や担当者名を差込できるようにひな形シートを作成すると良いです。

それでは、好きなひな形シートを作成しましょう。

3.VBAでCSVファイルを作成する機能を記入する

「Microsoft Visual Basic for Applications」を起動します。

VBAプログラムを記入する(その1)

VBAプログラムを記入する(その1)

 

VBAプログラムを記入する(その2)

VBAプログラムを記入する(その2)

 

標準モジュールを追加して、以下のソースを書きます。

 

4.ひな形シートをコピーして新規ブックを作成する機能の使い方

それでは、ひな形シートをコピーして、新規ブックを作成する方法を説明します。

 

まず、「メイン」シートのA2セルに「作成先フォルダパス」を入力します。

次に、B2セルに利用する「ひな形シート名」を入力します。

そして、A列・B列の4行目以降に「作成ファイル名」、「シート名」を入力します。

また、C列からL列の3行目に差込位置のセル番地を入力します。

最後に、C列からL列の4行目以降にそれぞれの差込位置に入力したい情報を入力します。

ひな形シートをコピーして新規ブックを作成する機能の使い方

ひな形シートをコピーして新規ブックを作成する機能の使い方

次に、「開発」タブの「マクロ」をクリックします。

 

実行ボタンをクリックする

実行ボタンをクリックする

先程作成したVBAプログラム「MainProc」が一覧に表示されていますので、選択します。

次に、「実行」ボタンをクリックして新規ブック作成を開始します。

 

少し待つと、ひな形シートをコピーして、新規ブックが配布先リスト分作成されます。

ひな形シートをコピーして新規ブックが作成されました。

ひな形シートをコピーして新規ブックが作成されました。

 

それでは、作成された新規ブック(001_人事部_山田.xlsx)の中身を見てみましょう。

作成された新規ブックの中身です。

作成された新規ブックの中身です。

指定されたひな形シートに指定されたシート名、差込情報が入力されています。

具体的には、部署名・従業員番号・氏名が指定された値で入力されています。

 

どうですか、簡単でしょ。

もっと大量のデータでも、同じく簡単ですのでやってみてください。

また、好きなひな形シートで新規ブックを作成してみましょう。

 

5.ひな形シートをコピーして新規ブックを作成するVBAプログラムの説明

それでは、VBAプログラムを説明します。

①「メイン」シートを変数に格納する

ここでは、このあとの処理で何度も使う「メイン」シートを変数に格納しています。

そうすることにより、入力するプログラムを短くすることができるからです。

何度も「ThisWorkbook.Sheets(“メイン”)」と入力するより、「shtMain」と入力するほうが少なくてすむからです。

 

②作成先フォルダパスを変数に格納する

ここでは、「メイン」シートのA2セルに入力されている「作成先フォルダパス」を変数に格納しています。

 

③ひな形シート名を変数に格納する

ここでは、「メイン」シートのB2セルに入力されている「ひな形シート名」を変数に格納しています。

 

④データ入力されているA列の最終行を取得する

ここでは、データが入力されているA列の最終行を変数に格納しています。

新規ブックを作成する数を管理するために、取得しています。

 

⑤データ入力されている3行目の最終列を取得する

ここでは、差込位置のセル番地が入力されている最終列番号を変数に格納しています。

差込したい項目数を管理するために、取得しています。

 

⑥差込位置情報を取得する

ここでは、「メイン」シートの3行目に入力されている「差込位置情報」を変数に格納しています。

ただし、3行目の最終列が2より大きい場合のみ、実行させています。

なぜなら、差込位置情報が入力されていない場合、「差込位置情報」を取得する必要がないからです。

 

⑦作成ファイル情報を取得する

ここでは、4行目以降に入力されている「作成ファイル名」、「シート名」、「差込したい値」を変数に格納しています。

 

⑧ひな形シートを変数に格納する

ここでは、指定されたひな形シートを変数に格納しています。

 

⑨作成するファイルを開く

ここでは、指定されたひな形シートをコピーして新規ブックを作成しています。

 

⑩シート名を変更する

ここでは、先程作成した新規ブックのシート名を指定されたシート名に変更しています。

 

⑪差込情報をセットする

ここでは、入力された差込情報を先程の新規ブックの指定セルに入力しています。

 

⑫指定されている作成ファイル名でブックを保存する

ここでは、指定された「作成先フォルパス」に「作成ファイル名」で先程の新規ブックを保存しています。

拡張子は、固定で「xlsx」で保存しています。

 

⑬新しいブックを閉じる

ここでは、先程の新規ブックを閉じています。

 

以上です。

 

それでは、ひな形シートをコピーして新規ブックを大量に作成しましょう。

これで、面倒なコピー作業や入力作業から解放されます。

 

 

最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です