銀河鉄道

【VBA】名前を付けて保存|SaveAs

サムネイル
[VBA]SaveAs名前を付けて保存

名前を付けて保存する

メッセージが出ないように、アラート停止→再開する

' Save a Workbook under a new path and return that Workbook safely
' Workbookを新しいパスに保存し、安全にそのWorkbookを返す

Public Function SaveAsBook( _
        ByVal wb As Workbook, _
        ByVal fullPath As String) As Workbook

    On Error GoTo CleanUp
    Application.DisplayAlerts = False

    wb.SaveAs Filename:=fullPath
    Set SaveAsBook = wb   ' ActiveWorkbookではなく、直接渡されたwbを返す

CleanUp:
    Application.DisplayAlerts = True
End Function

Always return the Workbook you saved, not the active one—stability beats convenience.
返すのは常に保存したWorkbook自身、ActiveWorkbookに頼らない

DisplayAlerts のリスク

  • False にしたままエラーで抜けると Excel 全体が無音で危険。
  • 必ず Finally 的に True に戻す仕組みが必要。

Referenced Insights

  • Microsoft Docs: Workbook.SaveAs method (Excel)
  • Fowler, M. (2004). Refactoring: Improving the Design of Existing Code. Addison-Wesley.(外部依存を避け、引数をそのまま返すことが推奨される)

| SaveAs|別名保存 |
| ActiveWorkbook|アクティブブック |
| DisplayAlerts|警告表示制御 |
| Error Handling|エラーハンドリング |
| Robust Return|堅牢な戻り値 |

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧