【Excel VBA】ファイルを保存する基本コードとやさしい解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

VBAで作業をしていると、
「処理結果を保存したい」
「別名で保存してバックアップを作りたい」
「ユーザーに保存先を選んでもらいたい」
そんな場面がよくあります。

ここでは、ファイルを保存する基本の使い方と、
実務で安心して使える書き方を解説します。

まずはコードを確認(もっともシンプル)

ActiveWorkbook.Save

開いているブックをそのまま上書き保存します。

ファイルを別名で保存する(SaveAs)

ActiveWorkbook.SaveAs "C:\Data\result.xlsx"

別名保存の基本です。

保存形式を指定する

ActiveWorkbook.SaveAs _
Filename:="C:\Data\result.xlsx", _
FileFormat:=xlOpenXMLWorkbook

よく使う形式:

形式FileFormat
xlsxxlOpenXMLWorkbook
xlsmxlOpenXMLWorkbookMacroEnabled
csvxlCSV

具体的な例で理解する

日付付きのファイル名で保存する

Dim path As String
path = "C:\Data\result_" & Format(Date, "yyyymmdd") & ".xlsx"

ActiveWorkbook.SaveAs path

日次処理でよく使うパターンです。

保存先フォルダがなければ作成してから保存する

Dim folder As String
folder = "C:\Export"

If Dir(folder, vbDirectory) = "" Then
MkDir folder
End If

ActiveWorkbook.SaveAs folder & "\output.xlsx"

実務で安心して使える“安全保存”の書き方です。

ユーザーに保存先を選んでもらう

Dim fd As FileDialog
Dim path As String

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

If fd.Show = -1 Then
path = fd.SelectedItems(1)
ActiveWorkbook.SaveAs path & "\result.xlsx"
End If

ユーザーとの“やさしい対話”が生まれます。

上書き保存と別名保存の違い

種類内容よく使う場面
Save上書き保存編集中のブックをそのまま保存
SaveAs別名保存バックアップ作成、出力ファイル作成

実務では SaveAs を使う場面が多い です。

注意点(実務で気をつけたいこと)

  • 上書き保存は元データを壊す可能性
    → バックアップを作るなら SaveAs が安心。
  • 保存先フォルダが存在しないとエラー
    → Dir で存在チェックすると安全。
  • CSV保存は注意
    → 書式や数式が失われるため、用途を明確に。
  • ネットワーク保存は遅い
    → エラー処理を入れておくと安定します。

応用:安全に保存する関数

Function SaveSafe(wb As Workbook, path As String) As Boolean
On Error GoTo ErrHandler

wb.SaveAs path
SaveSafe = True
Exit Function

ErrHandler:
SaveSafe = False
End Function

保存処理を関数化すると、
複数の処理で使い回せます。

まとめ

  • 上書き保存は Save、別名保存は SaveAs
  • 保存形式は FileFormat で指定できる
  • 日付付きファイル名は実務でよく使う
  • 保存先フォルダの存在チェックは必須
  • フォルダ選択ダイアログと組み合わせるとユーザーに優しい

ファイル保存は、
処理の“しめくくり”を静かに支える大切な機能です。


decopon
decopon

保存処理が安定すると、
VBAの流れがぐっと安心感のあるものになります。
大切なデータを、やさしく確実に扱っていきましょう。

moco
moco

保存って、なんだか“今日の記録”を残すみたいでいいよね。
VBAなら、その記録をそっと守ってくれるよ。

コメント

タイトルとURLをコピーしました