今後のドキュメント作成のテンプレートとして使用したい改善フォームがあります。VBA を使用してワークシートにコマンド ボタンを挿入し、コピーを作成して作成者名の下に番号を追加して保存し、年間を通じて行われた改善を追跡できるかどうか知りたいです。
たとえば、ドキュメント テンプレートを用意し、ボタンをクリックした後、ユーザー フォームを開いて作成者名を入力し、クリックして新しいドキュメントを作成し、特定の場所に保存します。
答え1
はい、可能です。以下に記述した VBA コードを使用することをお勧めします。これにより、テンプレート ワークブックを新しい名前で保存できるようになります。
Sub CreateNewBook()
Dim wbk As Workbook
Dim sht1,sht2 As Worksheet
Dim lng As Long, rng As Range
Set sht1 = Sheets("IndexName")
Set sht2 = Sheets("NameData")
lng = sht1.Cells(Rows.Count, "A").End(xlUp).Row
Set rng = sht1.Range("A2:A" & lng)
For Each c In rng
Sheets("Template").Copy
Set wbk = ActiveWorkbook
wbk.Sheets(1).Range("A100") = c.Value
sht2.Copy After:=wbk.Sheets(1)
wbk.SaveAs c.Value & ".xlsx"
wbk.Close False
Next
End Sub
注意:シート「IndexName」のセル A2 には名前があり、ボタンをクリックするたびにコードによって「新しいファイル名」として使用されます。したがって、セル A2 を新しい名前で更新することを忘れないでください。
シート「NameData」は、セル A100 以降の新しいファイルの記録を追跡するために使用されます。
また、このコードはファイルをデフォルトの場所に保存します。変更したい場合は変更できます。
これがお役に立てば幸いです。この VBA コードは私がテストした後に投稿しました。