VBAで「名前を付けて保存」し保存先を指定する方法|SaveAsメソッドとダイアログの使い方

目次

スポンサードリンク

Excel VBAでブックを「名前を付けて保存」する際、保存先やファイル名を指定して自動保存したいケースはよくあります。本記事では、SaveAsメソッドの基本構文と、保存先を選べるダイアログの表示方法の両方を紹介します。

パスとファイル名を指定して保存する方法

Workbookオブジェクトに対して、SaveAsメソッドを実行することで、パスを指定してブックを保存することができます。 Filename にフルパスを指定すれば、自動でその場所に保存されます。既存ファイルがある場合は上書き保存されるので注意してください。

ThisWorkbook.SaveAs Filename:="C:\Users\sample.xlsx"

保存先を選べる「名前を付けて保存」ダイアログを使う方法

Application.GetSaveAsFilename は保存先選択用のダイアログを表示するメソッドです。 ダイアログで選択したパスが savePath 変数に代入されます。

savePath 変数の値を使って、SaveAsメソッドを実行することで、ダイアログで指定したパスにファイルを保存することができます。 ユーザーがダイアログでキャンセルボタンをクリックした場合は False が変数に入るため、条件分岐でパスがあるかチェックしています。

Dim savePath As Variant
savePath = Application.GetSaveAsFilename( _
    InitialFileName:="sample.xlsx", _
    FileFilter:="Excelブック (*.xlsx), *.xlsx", _
    Title:="名前を付けて保存")

If savePath <> False Then
    ThisWorkbook.SaveAs Filename:=savePath
End If

まとめ

VBAではSaveAsメソッドを使えば柔軟な保存操作が可能です。手動・自動の切り替えや、形式指定によるファイル出力など、業務自動化において非常に有用な機能です。


Excel VBAのテクニックを幅広く学べるおすすめ書籍
基本の定番ネタから応用的なテクニックまで、網羅的にテクニックを学べる書籍です。Microsoft365/Office2024対応。手元に置いておきたい一冊です。

中級者以上におすすめの書籍
VBAというプログラミング言語を本格的に学びたい人におすすめの書籍です。VBAの言語としての仕組みをしっかり理解したい人に。