Last Updated on 2024年6月17日
はじめに
実務では、テンプレートファイルを用意し、そこにデータを入力した後、指定したフォルダに名前を付けて保存することが一般的です。これにより、元のテンプレートファイルは変更されずに済みます。また、最近のOfficeの自動保存機能が悪影響しないように、テンプレートファイルの開き方に工夫をすることが重要です。
ここでは、Workbooks.OpenとWorkbooks.Add Template の違いを解説し、テンプレートファイルを使用して新しいファイルを指定フォルダに保存する方法について説明します。
テンプレートファイルが欲しい方は、ダウンロードしてください。

Workbooks.Open と Workbooks.Add Template の違い
Workbooks.Open
- 動作: 指定されたExcelファイルを開きます。この操作は、手動でExcelファイルを開くのと同じです。
- 影響: 開いたファイルに対して行った変更は、そのファイルに対して直接行われます。
- 保存: ファイルを保存すると、元のファイルが上書きされる可能性があります。
Workbooks.Add Template
- 動作: 指定されたテンプレートファイルを基に、新しいブックを作成します。この新しいブックはテンポラリ(メモリ上にのみ存在する)です。
- 影響: 元のテンプレートファイルには一切変更が加えられません。新しいブックとして作成され、独立して操作できます。
- 保存: 新しい名前で保存することで、新しいファイルとしてディスクに保存されます。
コード例
以下に、テンプレートファイルを使用して指定フォルダに名前を付けて保存するVBAコードを示します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
'------------------------------------------------------------------------------------------ '処理名:SaveToSpecificFolder '概 要:テンプレートファイルを開いて、指定フォルダに名前を付けて保存する '------------------------------------------------------------------------------------------ Sub SaveToSpecificFolder() Dim openFileFullPath As String '開くファイルのフルパスを格納 Dim saveFullPath As String '保存フルパスを格納 ' テンプレートファイルのフルパスを設定する openFileFullPath = "C:\Users\テンプレート.xlsx" ' あなたが開きたいフルパスに置き換えてね 'テンプレートファイルから新しいワークブックを生成する Workbooks.Add template:=openFileFullPath ' 何かしらの処理を行う :ここでは、仮にC5からF6セル範囲の背景色を水色にします ActiveWorkbook.Sheets(1).Range("C5:F6").Interior.Color = RGB(0, 255, 255) ' 保存先のフルパスを設定する saveFullPath = "C:\Users\保存ファイル.xlsx" ' あなたが保存したいフルパスに置き換えてね ' 既存ファイルの上書き保存時のメッセージを表示しない Application.DisplayAlerts = False ' 新しい名前でワークブックを保存する ActiveWorkbook.SaveAs Filename:=saveFullPath ' メッセージ表示を再度有効にする Application.DisplayAlerts = True ' ファイルを閉じる ActiveWorkbook.Close SaveChanges:=False '処理終了メッセージを表示する MsgBox "処理が終了しました", vbInformation, "保存" End Sub |
解説
- テンプレートファイルのパスを設定: 11行目
- テンプレートとしてファイルを開く: 14行目
- 処理を行う: 17行目
- 新しい名前で保存: 26行目
- ファイルを閉じる: 32行目
この方法を使用することで、元のテンプレートファイルに影響を与えることなく、新しいファイルを作成して保存できます。これにより、Officeの自動保存機能による悪影響を防ぎつつ、効率的に作業を行うことができます。


コメント