「エクセルのファイル形式を変更して閉じるにはどうしたらいいんだろう?」
このように悩んだことはありませんか?

・VBAで特定のファイルを別の名前や場所に保存したい。
・ファイル形式を変更して保存したい。



その場合は、VBAの「Workbooks.SaveAsメソッド」を
使用すると解決します!
この記事では、エクセルVBAの「Workbooks.SaveAsメソッド」を使用してファイルを保存する方法について詳しく説明します。
たとえば、「vba saveas workbook」を使えば、ファイルを別の名前や指定した場所に保存できます。
また、「vba saveas fileformat」でファイル形式を変更して保存することも可能です。
さらに、保存時に上書き確認を回避したい場合には「vba saveas 上書き」を使うことで、煩わしい警告を表示させずにスムーズに保存できます。
基本的な使い方から応用的なテクニックまで、初心者でもすぐに実践できる内容です。
ぜひ最後までお読みください。
【 この記事の概要 】
よく使う度 | |
難しさ | |
覚えておくと安心度 |
この記事を見て「できるようになる」こと
この記事を読めば、以下のことができるようになります。
- VBAのワークブックを閉じる方法を選定できるようになる
- Workbooks.SaveAsメソッドの基本を習得する
- 引数に使用される「:=」とはなにか?理解する
- Workbooks.SaveAsメソッドが良く使用される場面を知る
- Workbooks.SaveAsメソッドを使用するうえでの注意ポイントを確認する
- Workbooks.SaveAsメソッドの使用例を確認する
VBAのSave, SaveAs, Closeメソッドの使い分け | 保存・閉じる方法の違い
エクセルVBAでワークブックを保存・閉じるには、主に3つのメソッド(Save, SaveAs, Close)があります。
- SaveAsメソッド
- ワークブックを新しい名前や異なる場所に保存するために使います。
また、引数の「fileformat」を使用すると、ファイル形式を変更することもできるため、.xlsm
,.xlsx
,.csv
など異なる形式での保存が可能です。
これにより、バージョン管理やバックアップにも役立ちます。
- ワークブックを新しい名前や異なる場所に保存するために使います。
- Closeメソッド
- ワークブックを閉じるために使います。
このメソッドは、ファイルに変更があった場合に保存するかどうかを確認するダイアログを表示します。
保存の確認が不要で、すぐにファイルを閉じたい場合は、このメソッドにオプションを追加することで、メッセージを表示せずに閉じることも可能です。
- ワークブックを閉じるために使います。
- Saveメソッド
- 開いているワークブックをそのまま上書き保存する際に使用します。
ファイル名や保存場所を変更せず、現在作業している内容をすぐに保存したいときに便利です。
- 開いているワークブックをそのまま上書き保存する際に使用します。
エクセルVBAでワークブックを保存・閉じる方法一覧
スクロールできます引用元:エクセルVBAで「Workbooks.Close」を使ってワークブックを保存せずに閉じる方法
Close
メソッド
Save
メソッド
SaveAs
メソッド同じパスで名前を変更して保存 不可 不可 可能 新規パスに保存 不可 不可 可能 上書き保存 可能 可能 可能 保存せずに閉じる 可能 不可 不可 ファイル形式変更 不可 不可 可能 記事を見る 記事を見る 記事を見る ワークブックの保存と閉じ方の違い
VBAの「Workbooks.SaveAsメソッド」の基本について解説
まずは、VBAでファイルを別名保存する基本的な方法について説明します。
Workbooks.SaveAsメソッドとは? | どんなことができる
VBAのWorkbooks.SaveAsメソッドは、エクセルのワークブックを新しい名前や異なる保存場所に保存するために使用されます。
たとえば、作業中のファイルを別名で保存したり、特定のファイル形式を指定して保存したい場合に便利です。
このメソッドを使用することで、VBAコードから直接エクセルファイルを保存することができます。
Workbooks.SaveAsメソッドの構成・引数
Workbooks.SaveAsメソッドは、多くの引数を持っており、それぞれに特定の機能があります。


引数が多すぎて訳が分かりませんね。。。
安心してください。よく使用するものだけ、覚えたら問題有りません。
- expression (必須)
- 保存したいワークブック名を指定します。
例:「ActiveWorkbook」、「Workbooks(“ファイル名.xlsx”)」、「Wb.Save」のように使用します。
Workbooks.Saveメソッドには引数がなく、開いているワークブックをそのまま上書き保存します。
- 保存したいワークブック名を指定します。
以下に代表的な引数をまとめました。
引数 | 省略可能か | 説明 | デフォルト値 |
---|---|---|---|
Filename | 省略可能 | 保存するファイルのパス・名前を指定します。 パスを指定しなければ現在のフォルダーに保存されます。 | なし |
FileFormat | 省略可能 | 保存するファイルの形式を指定します。 使用できる定数はXlFileFormat列挙型で 定義されています。 ⇒ くわしくはFileFormat引数の値一覧 | xlWorkbookNormal |
Password | 省略可能 | ファイルを保護するためのパスワードを 15文字以内で指定します。 大文字と小文字は区別されます。 | なし |
WriteResPassword | 省略可能 | ファイル書き込みパスワードを指定します。 | なし |
ReadOnlyRecommended | 省略可能 | ファイルを読み取り専用として開くことを 推奨するかどうかを指定します。 読み取り専用を推奨するメッセージを 表示するにはTrueを指定します。 | False |
CreateBackup | 省略可能 | バックアップファイルを作成するか どうかを指定します。 作成する場合はTrueを指定します。 | False |
より詳しい情報は、Microsoft公式 – Workbooks.SaveAs メソッドを参照してください。
Workbooks.SaveAsメソッドの宣言例
ワークブックを別名にして保存する場合の例を記述します。
Sub 別名で保存する()
'// saveasでworkbookを別名に変更する例
Workbooks("サンプル.xlsx").SaveAs Filename:="C:\保存先\別名サンプル.xlsx"
End Sub
また、ファイル形式を指定する方法の例も追加します。
Sub ファイル形式を指定して保存する()
'// saveasのfileformatを使って、ファイル形式を指定して保存
Workbooks("サンプル.xlsm").SaveAs Filename:="C:\保存先\新しいファイル.xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub
このように記述することで、Workbooks.SaveAsメソッドを使用してワークブックを保存することができます。
引数「FileFormat」の値一覧
さらにFileFormat引数について、代表的なものを紹介します。
この設定を指定することで、保存するファイル形式を変更することができます。
定数 | 説明 |
---|---|
xlWorkbookNormal | 標準のエクセルファイル(.xls) |
xlOpenXMLWorkbook | Excel 2007以降の形式(.xlsx) |
xlOpenXMLWorkbookMacroEnabled | マクロ有効のExcel 2007以降の形式(.xlsm) |
xlCSV | CSVファイル形式(.csv) |
xlExcel12 | Excel 12バイナリファイル形式(.xlsb) |
xlExcel8 | Excel 97-2003ファイル形式(.xls) |
xlText | テキストファイル形式(.txt) |
xlUnicodeText | Unicodeテキスト形式(.txt) |
xlHTML | HTML形式(.html) |
xlXMLSpreadsheet | XMLスプレッドシート形式(.xml) |
より詳しい情報は、Microsoft公式 – XlFileFormat 列挙体を参照してください。
VBA「Workbooks.SaveAsメソッド」の引数に使用される「:=」について
VBAで引数を指定する際に使われる「:=」は、引数名と値を明確に対応させるための記号です。
この記号を使うことで、引数がどのパラメータに対応するかを明確にし、コードの読みやすさを高めます。
例えば、FileFormat引数を使って保存するファイル形式を指定する際は、以下のように「:=」を使います。
Workbooks("サンプル.xlsx").SaveAs Filename:="C:\保存先\新しいファイル.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
この例では、「FileFormat:=xlOpenXMLWorkbookMacroEnabled」と指定することで、マクロ有効のExcel形式(.xlsm)でファイルが保存されます。
FileFormat引数に何も指定しない場合は、デフォルトのExcel形式(.xlsx)で保存されます。
「:=」と「=」の違いについて
「:=」は、引数を設定する際に使われる記号です。
これに対して、「=」は、通常の代入文で使われ、変数に値を代入する際に使用されます。
例えば、変数に値を代入する場合は以下のように「=」を使います。
Dim myVar As String
myVar = "テスト"
このように、引数指定には「:=」、代入には「=」を使うという違いがあるため、VBAコードを書く際にこの2つを適切に使い分けることが重要です。
VBA「Workbooks.SaveAsメソッド」がよく使われる場面
VBAのWorkbooks.SaveAsメソッドは、Excelで自動的にファイルを保存したり、異なる形式や場所にファイルを保存したりする際に非常に便利です。
特に、業務でのExcel作業の効率化に役立つため、よく使われるシチュエーションをいくつか紹介します。
ファイル名や場所を変えてバックアップを作成する場合
Excelファイルの定期的なバックアップを作成する際、手動で名前を変更して保存するのは手間がかかります。
そこで、SaveAsメソッドを使用することで、ファイル名や保存場所を自動で指定し、バックアップを作成することができます。
Sub バックアップを作成する()
Workbooks("データ.xlsx").SaveAs Filename:="C:\バックアップ\データ_backup.xlsx"
End Sub
この例では、作業中のファイルを「データ_backup.xlsx」という名前で別のフォルダーに自動保存します。
この方法はバックアップ作成の効率化に貢献します。
異なるファイル形式で保存する場合
Excelデータを他の形式(例: CSVやPDF)で保存する必要がある場面では、SaveAsメソッドが大活躍します。
例えば、会計データをCSV形式で保存し、他のシステムにインポートする際などに便利です。
Sub CSV形式で保存する()
Workbooks("データ.xlsx").SaveAs Filename:="C:\保存先\データ.csv", FileFormat:=xlCSV
End Sub
このように、FileFormat引数を使うことで、Excelファイルを異なる形式で簡単に保存することができ、異なるソフトウェア間でのデータ交換がスムーズになります。
⇒ 「引数「FileFormat」の値一覧」をもう一度見る
ファイルを上書きせずに新しいバージョンを作成する場合
同じファイルを何度も編集する際、過去のバージョンを残したい場合もあります。
SaveAsメソッドを使えば、ファイル名に日付やバージョン番号を付け加えて、新しいバージョンとして保存することができます。
Sub バージョン管理で保存する()
Dim currentDate As String
currentDate = Format(Date, "yyyy-mm-dd")
Workbooks("プロジェクト.xlsx").SaveAs Filename:="C:\保存先\プロジェクト_" & currentDate & ".xlsx"
End Sub
このコードでは、現在の日付をファイル名に含めることで、バージョン管理を容易にします。
過去の作業内容を保管しつつ、新しいバージョンを作成できるため、ミスを防止しやすくなります。
ユーザーにファイル名を入力させる場合
プログラムを開発していると、ユーザーに保存するファイル名を選ばせたい場合があります。
このようなとき、SaveAsメソッドを使うと、保存ダイアログを表示させてユーザーが新しいファイル名を指定することができます。
Sub ユーザーに保存先を指定して保存する()
'// FileDialogオブジェクトを作成
Dim fd As FileDialog
Dim filePath As String
'// FileDialogの種類を「保存」として設定
Set fd = Application.FileDialog(msoFileDialogSaveAs)
'// 保存先のフォルダー選択ダイアログを表示
With fd
.Title = "保存先を指定してください"
.InitialFileName = "C:\保存先\新しいファイル.xlsx"
'// ユーザーが選択した場合の処理
If .Show = -1 Then
filePath = .SelectedItems(1) '// 選択された保存先のパスを取得
'// Workbooks.SaveAsメソッドで保存
ActiveWorkbook.SaveAs Filename:=filePath, FileFormat:=xlOpenXMLWorkbook
Else
MsgBox "保存がキャンセルされました。", vbExclamation
End If
End With
End Sub
ユーザーにインタラクティブにファイル名や保存先を決めてもらえるので、状況に応じたファイルの管理がしやすくなります。
VBA「Workbooks.SaveAsメソッド」を使う際の注意ポイント
VBAのWorkbooks.SaveAsメソッドは非常に便利ですが、使い方を間違えるとエラーが発生することや、思わぬ動作をすることがあります。
これらのポイントを理解することで、スムーズにVBAコードを実行でき、問題を回避できます。
Application.DisplayAlertsを使って警告メッセージを抑制する
VBAでWorkbooks.SaveAsメソッドを使用してファイルを保存する際、上書き保存を行う場合や、ファイル形式を変更する場合、通常は確認メッセージが表示されます。
例えば、既存のファイルに上書きしようとすると、「本当に上書きしますか?」というメッセージが出ることがあります。
このようなメッセージを表示させたくない場合は、Application.DisplayAlertsプロパティを使用して警告メッセージを抑制することができます。
コード例 | 警告なしで上書き保存を行う方法
Sub ファイルを警告なしで上書き保存する()
Application.DisplayAlerts = False '// 警告メッセージを表示しない
ActiveWorkbook.SaveAs Filename:="C:\保存先\上書きファイル.xlsx", FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True '// メッセージ表示を元に戻す
End Sub
説明
このコードでは、DisplayAlertsをFalse
に設定することで、上書き保存の確認メッセージや、ファイル形式の変更時に表示される警告メッセージを非表示にしています。
この機能は、上書き保存やファイル形式変更(例: FileFormatを使用)を自動的に処理したい場合に非常に便利です。
処理が完了したら忘れずにTrue
に戻しましょう
処理の最後でApplication.DisplayAlertsをTrue
に戻すことが重要です。
これは、次の操作で通常通り警告メッセージが表示されるようにするためです。
もしDisplayAlertsをTrue
に戻すのを忘れてしまうと、後の操作で警告メッセージが表示されず、意図せず上書き保存やファイル形式変更が行われてしまう可能性があります。
これにより、重要なデータが上書きされてしまうリスクがあるため、常にTrue
に戻すことを忘れないようにしましょう。
保存ダイアログで「いいえ」を押すとエラーが発生する場合の処理方法
Workbooks.SaveAsメソッドを使って、ユーザーにファイル名や保存先を選ばせる場合、保存ダイアログが表示されます。
しかし、ユーザーが保存ダイアログで「いいえ」や「キャンセル」を押すと、エラーが発生することがあります。


これを防ぐためには、エラーハンドリングを追加する必要があります。
Sub 保存ダイアログでキャンセルを処理する()
On Error GoTo ErrHandler ' エラーハンドリング
Dim filePath As String
filePath = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx")
' キャンセルが押された場合
If filePath = "False" Then
MsgBox "保存がキャンセルされました。", vbInformation
Else
ActiveWorkbook.SaveAs Filename:=filePath, FileFormat:=xlOpenXMLWorkbook
End If
Exit Sub
ErrHandler:
MsgBox "保存に失敗しました。エラーコード:" & Err.Number, vbExclamation
End Sub
このコードでは、ユーザーが保存ダイアログで「キャンセル」や「いいえ」を押した場合に、メッセージボックスを表示してエラーを防いでいます。
特に、保存先やファイル名を指定する場合、こうしたエラーハンドリングは重要になります。
注意しましょう。
Workbooks.SaveAsメソッドの使用例
それでは、具体的な使い方を見ていきましょう。
以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。
VBAの基礎から応用までを効率よくしっかり学習したい方には、UdemyのVBA講座もおすすめです。
特に自己学習で進める場合、ビデオや実践例があると理解が進みやすくなります。


\ 自分のペースで学べるVBA講座はこちら /
使用例1: 基本的なファイルを別の名前で保存する方法
VBAでファイルを別名で保存する基本的な方法を紹介します。
Workbooks.SaveAsメソッドを使えば、簡単にファイル名や保存先を変更して保存することができます。
以下のコードを実行すると、指定されたパスに新しい名前でファイルが保存されます。
コード例 | Workbooks.SaveAsメソッドを使用してファイルを別名で保存
Sub 別名保存する()
Workbooks("ファイル名.xlsx").SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx"
End Sub
コードの動作概要
まず、「Sub 別名保存する」で新しいサブルーチンを定義します。
これは保存処理を実行するための一連の動作をまとめた小さなプログラムです。
Workbooks("ファイル名.xlsx").SaveAs
を使って、現在開いているワークブックを指定します。
「Filename」引数で、新しいファイル名と保存先を指定し、その場所にファイルを保存します。
最後に、サブルーチンが終了し、プログラムが次の処理へ進みます。
ファイルが保存されているので、手動で「名前を付けて保存」を行う手間を省くことができます。
このコードで使用している機能
- なし
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub 別名保存する()
- この行では、サブルーチン(プロシージャ)「別名保存する」を定義しています。
サブルーチンは、特定の操作や処理をまとめて実行するための小さなプログラムです。
- この行では、サブルーチン(プロシージャ)「別名保存する」を定義しています。
- Workbooks(“ファイル名.xlsx”).SaveAs Filename:=”C:\新しいパス\新しいファイル名.xlsx”
- この行では、現在開いているExcelのワークブック「ファイル名.xlsx」を別の名前と保存先に保存する処理を行っています。
ここで使用されているWorkbooks.SaveAsメソッドは、Excelのワークブックを新しい名前や保存場所に保存するためのメソッドです。- Filename
- 保存先やファイル名を指定するための引数で、これが省略されると、現在の保存先にそのまま保存されます。
新しいファイル名やパスを指定することで、同じファイル名を別の場所に保存したり、異なる名前で保存することができます。
- 保存先やファイル名を指定するための引数で、これが省略されると、現在の保存先にそのまま保存されます。
- Filename
- この行では、現在開いているExcelのワークブック「ファイル名.xlsx」を別の名前と保存先に保存する処理を行っています。
- End Sub
- この行でサブルーチンが終了します。
すべての処理が完了した後、End Subによってプログラムのこの部分が終了し、次の操作へ進みます。
- この行でサブルーチンが終了します。
総括・ポイント
ファイルを別名で保存する基本的な操作を自動化でき、ビジネスのワークフローに組み込むことで、手動での保存作業を減らし、効率化を実現することができます。
使用例2: 新しいファイル名を入力してファイルを保存する方法
Filename引数を指定せずにWorkbooks.SaveAsメソッドを使用することで、ユーザーに保存ダイアログを表示させ、選択してもらう方法を紹介します。
特に、Filename引数を指定しない場合、VBAは保存ダイアログを表示し、ユーザーにファイル名を指定させることができます。
コード例 | Workbooks.SaveAsメソッドを使用して保存ダイアログを表示
Sub 保存ダイアログを表示する()
Workbooks("ファイル名.xlsx").SaveAs
End Sub
コードの動作概要
「保存ダイアログを表示する」という名前のサブルーチンを定義し、保存処理をまとめます。
Workbooks("ファイル名.xlsx").SaveAs
において、保存ダイアログが表示されます。
保存処理が完了し、サブルーチンが終了します。
このコードで使用している機能
- なし
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub 保存ダイアログを表示する()
- この行では、サブルーチン(プロシージャ)「保存ダイアログを表示する」を定義しています。
サブルーチンは、特定の操作をまとめて実行するための小さなプログラムです。
- この行では、サブルーチン(プロシージャ)「保存ダイアログを表示する」を定義しています。
- Workbooks(“ファイル名.xlsx”).SaveAs
- この行では、指定されたワークブック(「ファイル名.xlsx」)に対してWorkbooks.SaveAsメソッドを使用していますが、ここではFilename引数を指定していないため、VBAは保存ダイアログを自動的に表示します。
- Workbooks(“ファイル名.xlsx”)
- ここでは、開いているワークブックの名前「ファイル名.xlsx」を指定します。
この部分で、操作対象のワークブックがどれかをVBAに伝えています。
- ここでは、開いているワークブックの名前「ファイル名.xlsx」を指定します。
- .SaveAs
- SaveAsメソッドは、通常、ファイルを別名で保存するために使用しますが、Filename引数を指定していない場合、保存ダイアログが表示され、ユーザーに新しいファイル名を指定させます。
このダイアログでは、ユーザーが新しいファイル名や保存先を手動で入力します。
- SaveAsメソッドは、通常、ファイルを別名で保存するために使用しますが、Filename引数を指定していない場合、保存ダイアログが表示され、ユーザーに新しいファイル名を指定させます。
- Workbooks(“ファイル名.xlsx”)
- この行では、指定されたワークブック(「ファイル名.xlsx」)に対してWorkbooks.SaveAsメソッドを使用していますが、ここではFilename引数を指定していないため、VBAは保存ダイアログを自動的に表示します。
- End Sub
- この行でサブルーチンが終了します。サブルーチン内の処理がすべて終了すると、プログラムは次のステップに進みます。
End Subは、サブルーチンの終わりを明示する重要な行です。
- この行でサブルーチンが終了します。サブルーチン内の処理がすべて終了すると、プログラムは次のステップに進みます。
総括・ポイント
この使用例では、ユーザーに新しいファイル名や保存先を指定させるシンプルな方法を紹介しました。
Filename引数を省略することで、保存ダイアログを表示し、ユーザーがファイル名や保存先を手動で指定できる形にしています。
これにより、特定の保存場所に固定せず、動的なファイル保存を実現でき、ユーザーに柔軟な操作を提供します。
このコードは、ユーザーにファイル名や保存先を選ばせたい場面で非常に役立ちます。
また、保存ダイアログが表示されるため、ユーザーが誤ってファイルを上書き保存してしまうリスクも軽減されます。
ただし、保存ダイアログで「キャンセル」や「いいえ」を選択すると、エラーが発生することがあります。
この場合、適切なエラーハンドリングを行わないと、プログラムが停止する可能性があります。
エラーハンドリングを追加することで、ユーザーが保存をキャンセルした場合にもエラーが表示されないようにすることができます。
⇒ 「注意ポイント: 保存ダイアログで「いいえ」を押すとエラーが発生する場合の処理方法」をもう一度見る
使用例3: オブジェクト変数を使用してファイルを別名保存する方法
この使用例では、オブジェクト変数を使用して、ファイルを別名で保存する方法を紹介します。
オブジェクト変数を使うことで、開いたワークブックに対して効率的に操作を行い、最後に別名保存を実行することができます。
オブジェクト変数は、操作対象のワークブックを簡単に扱えるため、複雑な処理を行う際に非常に便利です。
コード例 | オブジェクト変数を使用してファイルを別名保存
Sub オブジェクト変数を使用して別名保存する()
Const filePath As String = "C:\パス\ファイル名.xlsx"
Dim Wb As Workbook
Set Wb = Workbooks.Open(filePath)
'// Wbを使用して処理を実施
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx"
End Sub
コードの動作概要
Constステートメントを使って、開くファイルのパスを指定します。
ここでは、"C:\パス\ファイル名.xlsx"
というファイルを開くように設定しています。
Dimステートメントを使用して、Workbook型のオブジェクト変数「Wb」を宣言します。
これにより、開いたワークブックを「Wb」という変数に格納し、後でその変数を使って操作が可能になります。
Set Wb = Workbooks.Open(filePath)
で、指定されたパスのファイルを開き、それをオブジェクト変数「Wb」にセットします。
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx"
で、ワークブックを新しい名前と場所に保存します。
これにより、元のファイルは保持され、新しいファイルが指定した保存先に作成されます。
このコードで使用している機能
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub オブジェクト変数を使用して別名保存する()
- この行では、サブルーチン(プロシージャ)「オブジェクト変数を使用して別名保存する」を定義しています。
このサブルーチンが呼び出されると、指定したファイルを開き、別名で保存する一連の処理が実行されます。
- この行では、サブルーチン(プロシージャ)「オブジェクト変数を使用して別名保存する」を定義しています。
- Const filePath As String = “C:\パス\ファイル名.xlsx”
- この行では、定数「filePath」を定義し、開きたいファイルのパスを指定しています。
- Dim Wb As Workbook
- この行では、Workbook型のオブジェクト変数「Wb」を宣言しています。
- Set Wb = Workbooks.Open(filePath)
- この行では、Workbooks.Openメソッドを使用して、指定したファイルを開きます。
- 「Set Wb」は、開いたワークブックをオブジェクト変数「Wb」にセットする操作です。
これにより、「Wb」を使って、そのワークブックに対する操作が可能になります。
- 「Set Wb」は、開いたワークブックをオブジェクト変数「Wb」にセットする操作です。
- この行では、Workbooks.Openメソッドを使用して、指定したファイルを開きます。
- ‘// Wbを使用して処理を実施
- この行は、コメントとして記載されており、ここに実際に行いたい操作(例えば、データの書き込みやセルの変更)を記述することができます。
- Wb.SaveAs Filename:=”C:\新しいパス\新しいファイル名.xlsx”
- この行では、オブジェクト変数「Wb」を使用して、開いたワークブックを別名で保存しています。
- SaveAsメソッド
- ファイルを新しい名前と保存先に保存します。
- Filename
- 新しい保存先とファイル名(例: “C:\新しいパス\新しいファイル名.xlsx”)を指定しています。
これにより、元のファイルを保持したまま、新しいファイルとして保存することができます。
- 新しい保存先とファイル名(例: “C:\新しいパス\新しいファイル名.xlsx”)を指定しています。
- SaveAsメソッド
- この行では、オブジェクト変数「Wb」を使用して、開いたワークブックを別名で保存しています。
- End Sub
- この行でサブルーチンが終了します。
全ての処理が完了すると、次の処理に進むことができます。
- この行でサブルーチンが終了します。
総括・ポイント
この使用例では、オブジェクト変数を使用してファイルを別名で保存する方法を紹介しました。
オブジェクト変数「Wb」を使うことで、開いたワークブックに対して効率的に操作を行い、その後、簡単に別名保存を行うことができます。
これは、複数の処理を伴うファイル操作や、ファイルのバックアップやバージョン管理などに非常に役立ちます。
使用例4: ファイル形式を指定して保存する方法
この使用例では、FileFormat引数を使用して、保存するファイルの形式を指定する方法を紹介します。
FileFormatを使うことで、ファイルをさまざまな形式(例: .xlsx, .xlsm, .csvなど)で保存することができ、特定の用途に合わせたファイル形式の保存が可能です。
⇒ 「引数「FileFormat」の値一覧」をもう一度見る
コード例 | ファイル形式を指定して保存する方法
Sub ファイル形式を指定して保存する()
Const filePath As String = "C:\パス\ファイル名.xlsx"
Dim Wb As Workbook
Set Wb = Workbooks.Open(filePath)
'// Wbを使用して処理を実施
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
コードの動作概要
Const
ステートメントを使って、開くファイルのパスを指定します。
この例では、”C:\パス\ファイル名.xlsx” というファイルを開きます。
Dimステートメントを使用して、Workbook型のオブジェクト変数「Wb」を宣言し、ファイルを開いた後の操作を行いやすくします。
Set Wb = Workbooks.Open(filePath)
で、指定されたファイルを開き、それを「Wb」にセットします。
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsm",FileFormat:=xlOpenXMLWorkbookMacroEnabled
で、マクロ有効形式(.xlsm)で新しい名前と保存先に保存します。
これにより、元のファイルは保持され、新しい形式のファイルが指定された場所に作成されます。
このコードで使用している機能
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub ファイル形式を指定して保存する()
- この行では、サブルーチン「ファイル形式を指定して保存する」を定義しています。
このサブルーチンが呼び出されると、指定されたファイルを開き、ファイル形式を指定して保存する一連の処理が実行されます。
- この行では、サブルーチン「ファイル形式を指定して保存する」を定義しています。
- Const filePath As String = “C:\パス\ファイル名.xlsx”
- この行では、定数「filePath」を定義し、開きたいファイルのパスを指定しています。
- Dim Wb As Workbook
- この行では、Workbook型のオブジェクト変数「Wb」を宣言しています。
- Set Wb = Workbooks.Open(filePath)
- この行では、Workbooks.Openメソッドを使用して、指定されたファイルパスのファイルを開きます。
- ‘// Wbを使用して処理を実施
- この行はコメントとして記載されており、ここに実際に行いたい操作を追加します。
たとえば、データの編集や追加処理を行う場合にこの部分にコードを記述します。
- この行はコメントとして記載されており、ここに実際に行いたい操作を追加します。
- Wb.SaveAs Filename:=”C:\新しいパス\新しいファイル名.xlsm”, FileFormat:=xlOpenXMLWorkbookMacroEnabled
- この行では、オブジェクト変数「Wb」を使って、開いたワークブックを別名かつ異なるファイル形式で保存しています。
- Filename
- ここでは、新しいファイルの名前と保存先を指定しています(例: “C:\新しいパス\新しいファイル名.xlsm”)。
- FileFormat
- ここでは、ファイル形式を指定しています。
この例では、「xlOpenXMLWorkbookMacroEnabled」を指定することで、マクロ有効形式(.xlsm)で保存しています。
⇒ 「引数「FileFormat」の値一覧」をもう一度見る
- ここでは、ファイル形式を指定しています。
- Filename
- この行では、オブジェクト変数「Wb」を使って、開いたワークブックを別名かつ異なるファイル形式で保存しています。
- End Sub
- この行でサブルーチンが終了この行でサブルーチンが終了します。
すべての処理が完了すると、プログラムは次のステップに進みます。
- この行でサブルーチンが終了この行でサブルーチンが終了します。
総括・ポイント
この使用例では、FileFormat引数を使って、ファイル形式を指定して保存する方法を紹介しました。
VBAのWorkbooks.SaveAsメソッドを使用することで、Excelファイルを別名で保存する際に、.xlsx
, .xlsm
, .csv
など、さまざまな形式で保存することが可能です。
特に、データの形式に応じたファイルを作成する際には、この方法が役立ちます。
また、FileFormat引数を活用して、保存形式を簡単に変更することで、異なるアプリケーションとのデータ共有や、Excel内での作業効率を向上させることができます。
使用例5: パスワードを設定してファイルを保存する方法
この使用例では、Password引数を使用して、ファイルにパスワードを設定して保存する方法を紹介します。
これにより、保存されたファイルを開く際にパスワードを要求するようになります。
パスワードで保護されたファイルは、他のユーザーに対して機密情報の漏洩を防ぐのに役立ちます。
コード例 | パスワードを設定してファイルを保存
Sub パスワードを設定して保存する()
Const filePath As String = "C:\パス\ファイル名.xlsx"
Dim Wb As Workbook
Set Wb = Workbooks.Open(filePath)
'// Wbを使用して処理を実施
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx", Password:="mypassword"
End Sub
コードの動作概要
Const
ステートメントで、開くファイルのパスを指定します。
ここでは、”C:\パス\ファイル名.xlsx” というファイルを開くように設定されています。
Dim
ステートメントでWorkbook型のオブジェクト変数「Wb」を宣言し、ファイルを開いた後にその操作が可能になります。
Set Wb = Workbooks.Open(filePath)
で指定されたファイルを開き、Wbにセットします。
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx", Password:="mypassword"
で、ワークブックを新しい名前と保存先に保存し、さらにパスワードを設定します。
このパスワードがないと、ファイルを開くことができなくなります。
このコードで使用している機能
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub パスワードを設定して保存する()
- この行では、サブルーチン「パスワードを設定して保存する」を定義しています。
このサブルーチンが呼び出されると、指定されたファイルを開き、パスワードを設定して保存する一連の処理が実行されます。
- この行では、サブルーチン「パスワードを設定して保存する」を定義しています。
- Const filePath As String = “C:\パス\ファイル名.xlsx”
- この行では、定数「filePath」を宣言して、開くファイルのパスを指定しています。
- Dim Wb As Workbook
- この行では、Workbook型のオブジェクト変数「Wb」を宣言しています。
- Set Wb = Workbooks.Open(filePath)
- この行では、Workbooks.Openメソッドを使用して、指定されたファイルを開きます。
- ‘// Wbを使用して処理を実施
- この行はコメントとして記載されており、実際の操作や処理を行いたい場合に、そのコードをここに追加します。
例えば、データの編集やセルへの書き込みなどがここで行われます。
- この行はコメントとして記載されており、実際の操作や処理を行いたい場合に、そのコードをここに追加します。
- Wb.SaveAs Filename:=”C:\新しいパス\新しいファイル名.xlsx”, Password:=”mypassword”
- この行では、オブジェクト変数「Wb」を使用して、ワークブックをパスワード付きで別名保存しています。
- Filename
- 新しい保存先とファイル名(例: “C:\新しいパス\新しいファイル名.xlsx”)を指定します。
これにより、元のファイルとは異なる場所や名前で保存されます。
- 新しい保存先とファイル名(例: “C:\新しいパス\新しいファイル名.xlsx”)を指定します。
- Password
- Password引数を指定することで、保存するファイルにパスワードを設定します。
この例では、Password:=”mypassword”として、ファイルに「mypassword」というパスワードを設定しています。
- Password引数を指定することで、保存するファイルにパスワードを設定します。
- Filename
- この行では、オブジェクト変数「Wb」を使用して、ワークブックをパスワード付きで別名保存しています。
- End Sub
- この行でサブルーチンが終了この行でサブルーチンが終了します。
すべての処理が完了すると、プログラムは次のステップに進みます。
- この行でサブルーチンが終了この行でサブルーチンが終了します。
総括・ポイント
この使用例では、Password引数を使って、パスワードを設定してファイルを保存する方法を紹介しました。
これにより、ファイルを開く際にパスワードを要求することで、セキュリティを強化できます。
VBAのWorkbooks.SaveAsメソッドを活用することで、他のユーザーによる不正なアクセスを防ぎ、ファイルの機密性を守ることができます。
また、パスワード付きのファイルを別名で保存することで、元のファイルを安全に保管しながら、必要に応じて異なるバージョンを作成することができます。
使用例6: 保存時に警告を非表示にする方法
この使用例では、Application.DisplayAlertsプロパティを使用して、保存時に表示される警告メッセージを非表示にする方法を紹介します。
通常、ファイルを上書き保存する際や、ファイル形式を変更する場合などに、Excelは警告メッセージを表示します。
しかし、Application.DisplayAlertsをFalse
に設定することで、これらのメッセージを非表示にし、スムーズに保存処理を進めることができます。
コード例 | 警告を非表示にして保存する方法
Sub 警告を非表示にして保存する()
Const filePath As String = "C:\パス\ファイル名.xlsx"
Dim Wb As Workbook
Set Wb = Workbooks.Open(filePath)
'// 警告を非表示にする
Application.DisplayAlerts = False
'// Wbを使用して処理を実施
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx"
'// 警告を再表示にする
Application.DisplayAlerts = True
End Sub
コードの動作概要
Const
ステートメントで、開くファイルのパスを指定します。
ここでは、”C:\パス\ファイル名.xlsx” というファイルを開く設定になっています。
Dim
ステートメントで、Workbook型のオブジェクト変数「Wb」を宣言します。
ファイルを開いた後、この変数を使ってワークブックに対する操作が行われます。
Set Wb = Workbooks.Open(filePath)
で指定されたファイルを開き、そのファイルを「Wb」にセットします。
Application.DisplayAlerts = False
で、上書きやファイル形式変更時の警告メッセージを非表示にします。
Wb.SaveAs Filename:="C:\新しいパス\新しいファイル名.xlsx"
で、新しい名前と保存先にファイルを保存します。
Application.DisplayAlerts = True
で、再び警告メッセージが表示されるように設定し直します。
これを忘れると他の操作に支障が出るため、注意が必要です。
このコードで使用している機能
1行ずつコードを解説
「クリック」してコードの詳細解説を見る
- Sub 警告を非表示にして保存する()
- この行では、サブルーチン「警告を非表示にして保存する」を定義しています。
このサブルーチンが実行されると、Excelの警告メッセージを非表示にして、指定されたファイルを保存する処理が実行されます。
- この行では、サブルーチン「警告を非表示にして保存する」を定義しています。
- Const filePath As String = “C:\パス\ファイル名.xlsx”
- この行では、定数「filePath」を定義し、保存したいファイルのパスを指定しています。
- Dim Wb As Workbook
- この行では、Workbook型のオブジェクト変数「Wb」を宣言しています。
- Set Wb = Workbooks.Open(filePath)
- この行では、Workbooks.Openメソッドを使用して、指定されたファイルを開きます。
- Application.DisplayAlerts = False
- この行で、Application.DisplayAlertsを「False」に設定します。
- Application.DisplayAlerts
- 警告メッセージを表示するかどうかを制御するプロパティです。
Falseに設定すると、警告メッセージが表示されなくなり、処理が自動で進行します。
- 警告メッセージを表示するかどうかを制御するプロパティです。
- Application.DisplayAlerts
- この行で、Application.DisplayAlertsを「False」に設定します。
- ‘// Wbを使用して処理を実施
- この行もコメントで、ここで実行する処理を記述する場所を示しています。
例えば、セルのデータを変更したり、シートを操作したりするコードを追加することができます。
- この行もコメントで、ここで実行する処理を記述する場所を示しています。
- Wb.SaveAs Filename:=”C:\新しいパス\新しいファイル名.xlsx”
- この行では、Wb.SaveAsメソッドを使ってワークブックを保存します。
- Filename
- 保存先のパスと新しいファイル名が指定されています。
例えば、「C:\新しいパス\新しいファイル名.xlsx」という新しい場所と名前でファイルが保存されます。
- 保存先のパスと新しいファイル名が指定されています。
- Filename
- この行では、Wb.SaveAsメソッドを使ってワークブックを保存します。
- Application.DisplayAlerts = True
- この行で、Application.DisplayAlertsを「True」に戻します。
警告メッセージを再表示するように設定し直すことで、次回以降の処理で通常通りの警告が表示されるようになります。
これを忘れると、他の操作で必要な警告も表示されなくなる可能性があるため、必ず処理の最後に設定を戻す必要があります。
- この行で、Application.DisplayAlertsを「True」に戻します。
- End Sub
- この行でサブルーチンが終了この行でサブルーチンが終了します。
すべての処理が完了すると、プログラムは次のステップに進みます。
- この行でサブルーチンが終了この行でサブルーチンが終了します。
総括・ポイント
この使用例では、Application.DisplayAlertsプロパティを使って、保存時の警告メッセージを非表示にする方法を紹介しました。
特に、自動保存や一括処理を行う際に、不要な警告メッセージを表示させずに処理を進めることができ、スムーズな作業が可能になります。
ただし、警告メッセージを再表示する設定を忘れないようにすることが重要です。
これを怠ると、後々の操作で警告が表示されず、意図しない操作が実行されるリスクがあります。
⇒ 「注意ポイント: Application.DisplayAlertsを使って警告メッセージを抑制する」をもう一度見る。
この記事のまとめ
エクセルVBAでの「Workbooks.Saveメソッド」を活用することで、ワークブックの保存を自動化する方法を学びました。
これにより、作業の効率化が一段と進みます。
再度ポイントのおさらいを行いましょう。
ポイントのおさらい
- Workbooks.SaveAsメソッドの基本を理解する
- Workbooks.SaveAsメソッドを使えば、VBAコードから簡単にファイル名や保存場所を指定してファイルを保存できます。
また、FileFormat引数を使うことで、ファイル形式を自由に選択することができます。 - ⇒ 「Workbooks.SaveAsメソッドの基本」をもう一度見る
- Workbooks.SaveAsメソッドを使えば、VBAコードから簡単にファイル名や保存場所を指定してファイルを保存できます。
- Workbooks.SaveAsメソッドのよく使われる場面
- Workbooks.SaveAsメソッドは、バックアップの作成や異なるファイル形式での保存に役立ちます。
たとえば、ファイル名に日付を追加して新しいバージョンを自動保存したり、他のシステムにデータを渡すためにCSV形式で保存することが可能です。 - ⇒ 「VBA「Workbooks.SaveAsメソッド」がよく使われる場面」をもう一度見る
- Workbooks.SaveAsメソッドは、バックアップの作成や異なるファイル形式での保存に役立ちます。
- Workbooks.SaveAsメソッドを使う際の注意ポイント
- 保存時にApplication.DisplayAlertsプロパティを活用することで、警告メッセージを抑制できますが、最後に必ずTrueに戻すことを忘れないようにしましょう。
これを怠ると、後続の操作でも警告が表示されなくなるため、注意が必要です。 - ⇒ 「VBA「Workbooks.SaveAsメソッド」を使う際の注意ポイント」をもう一度見る
- 保存時にApplication.DisplayAlertsプロパティを活用することで、警告メッセージを抑制できますが、最後に必ずTrueに戻すことを忘れないようにしましょう。
- Workbooks.SaveAsメソッドの使用例を実践する
- 具体的なコード例を通じて、ファイルを別名で保存したり、パスワードを設定して保存する方法を学びました。
これにより、Excel作業の自動化がより効率的になります。
⇒ 「Workbooks.SaveAsメソッドの使用例」をもう一度見る
- 具体的なコード例を通じて、ファイルを別名で保存したり、パスワードを設定して保存する方法を学びました。
この記事を通じて、VBAのWorkbooks.SaveAsメソッドの多様な使い方を学ぶことができました。
ファイルを手動で保存する手間を省き、自動化することで業務の効率を大幅に向上させることができます。
今回の内容をしっかりと身につけ、日常のExcel作業に活用してみてください。

