教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】アクティブなブックを保存(Save)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

ActiveWorkbook.Save [Filename]

解説

ActiveWorkbook.Saveは、現在アクティブなブック(ワークブック)を保存するための命令です。この命令を使用することで、手動で保存ボタンをクリックする必要なく、VBAコード内からワークブックを保存することができます。Filenameは省略可能な引数であり、保存するファイル名を指定します。省略した場合は、元のファイル名で上書き保存されます。

使い方

以下に、Saveメソッドの基本的な使い方を説明します。

(例1)現在のExcelブックを保存する場合

ActiveWorkbook.Save

上記のコードを実行すると、現在のExcelブックが保存されます。

(例2)別のファイル名で保存する場合

ActiveWorkbook.SaveAs "新しいファイル名.xlsx"

上記のコードを実行すると、現在のExcelブックが指定したファイル名で保存されます。

(例3)ファイルパスとファイル形式を指定して保存する場合

ActiveWorkbook.SaveAs "C:\保存先フォルダ\新しいファイル名.xlsx", FileFormat:=xlOpenXMLWorkbook

上記のコードでは、保存先のフォルダとファイル名、さらに保存形式(ここではxlsx形式)を指定して保存します。

プログラミング例

以下に、Saveメソッドの使用例を示します。

Sub SaveWorkbook()
    Dim filePath As String
    filePath = "C:\保存先フォルダ\新しいファイル名.xlsx"
    ' 作業中のブックを保存
    ActiveWorkbook.Save
    ' 別のファイル名で保存
    ActiveWorkbook.SaveAs "別のファイル名.xlsx"
    ' ファイルパスとファイル形式を指定して保存
    ActiveWorkbook.SaveAs filePath, FileFormat:=xlOpenXMLWorkbook
End Sub

上記の例では、まず作業中のブックを保存し、その後、別のファイル名で保存、最後に指定したファイルパスとファイル形式で保存しています。

まとめ

ActiveWorkbook.Saveを使用して現在のブックを保存することです。この方法は非常にシンプルで、現在編集中のブックをそのまま保存します。また、SaveAsメソッドを使用することで、別のファイル名や保存形式を指定して保存することができます。例えば、ActiveWorkbook.SaveAs "新しいファイル名.xlsx"とすると、現在のブックを"新しいファイル名.xlsx"という名前で保存します。さらに、ファイルの保存先のパスや保存形式を指定することもできます。例えば、ActiveWorkbook.SaveAs "C:\保存先フォルダ\新しいファイル名.xlsx", FileFormat:=xlOpenXMLWorkbookとすると、ファイルの保存先を指定のパスに変更し、保存形式をxlsx形式に指定します。これらの方法を組み合わせて使うことで、柔軟な保存方法を実現することができます。