【VBA】名前を付けて保存|SaveAs
作成日:2022-12-02
更新日:2025-10-04

名前を付けて保存する
メッセージが出ないように、アラート停止→再開する
' 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 FunctionAlways 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|堅牢な戻り値 |
2022-12-02
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-

時間計算のDateAdd 【VBA】DateAddで時間の足し算・引き算 -

[VBA]Vertical Paste1D array 【VBA】一次元配列を縦方向にシートに貼り付け【範囲をリサイズする】 -

[VBA]Killthe progress dialog VBA|保存処理(SaveAs)がフリーズする原因と対策 -

ユーザーフォームのタイトルバー非表示 【VBA】ユーザーフォームのタイトルバーを非表示にしてシステムっぽい見た目にする -

[VBA]Convert stringto Date 【VBA】文字列を日付型に変える|CDateよりDateSerial -

絶対値を取得 【VBA】絶対値を取得する|Abs