Excel マクロ ブックを保存するマクロ上書き保存、新規保存

ブックを保存するマクロ

ブックの保存いろいろ
新規保存する

上書き保存する場合、 新規保存する場合、 ファイル名を入力するダイアログを表示して保存する場合の 3通りのマクロを紹介します。

マクロ講座20回 

ブックを保存するマクロ

マクロ講座20回 ブックを保存するマクロ~上書き保存と新規保存する場合、ファイル名を入力するダイアログを表示して保存する場合
(サンプルファイルは、こちらから マクロ講座20回サンプルデータ

今日は、ブックを保存するマクロを作ってみましょう。
上書き保存する場合、
新規保存する場合、
ファイル名を入力するダイアログを表示して保存する場合の 3通りです。
最初のマクロは、ブックを上書き保存する場合です。
新規ブックではなく、すでに一度保存しておいてください。

上書き保存するマクロ

(1)マクロの記録ボタンをクリックして、 マクロの記録を開始し、
(2)「ファイル」タブから[上書き保存]を実行します。
(3)■(停止)ボタンを押して、マクロの記録を終了します。
コードは、以下のようになります。
非常にシンプルですね。
    Sub uwagakihozon()
        ActiveWorkbook.save
    End Sub    
上書き保存する場合は、
ActiveWorkbook.save
の1行でいいのですね。
ここでは、saveメソッドという操作を使いました。

新規保存する場合のマクロ

今度は、新規保存する場合のマクロを記録しましょう。

(1)マクロの記録を開始、
(2)ファイルタブをクリックし、名前をつけて保存を実行します。

サンプルでは、保存先を、Dドライブの専用フォルダを指定していますが、実際には、みなさんが 普段エクセルファイルを保存しているフォルダを指定してください。
(3)マクロの記録を終了します。
コードは、以下のようになります。
こんどは、ちょっと複雑ですが、大丈夫、本体は、
たいしたことないんです。
マクロの記録コード
Sub 新規保存()
    ActiveWorkbook.SaveAs Filename:= _
    "D:\Excel_site_sample\macro_kouza_21.xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
    
マクロ有効ブック以外の通常のブックを新規保存するマクロは個人用マクロブックに記録します。
Sub Macro4()
    ActiveWorkbook.SaveAs Filename:= _
	"D:\Excel_site_sample\見積書.xlsx", _
	FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
ブックに名前を付けて保存したい場合は、
上記のコードのようにSaveAs メソッドを使います。

上書き保存の時と比べるとやたらと長いですね。

それもそのはず、SaveAsメソッドは6つの引数を持っていて

第一引数は、 Filename
第二引数は、FileFormat
第三引数は、Password
第四引数は、CreateBackup
と続きます。


SaveAsメソッド

今回のマクロでは、重要なのは、第一引数のFilenameで、
保存するときのファイル名を指定します。

そのファイル名ですが、ドライブ 名(「C:」など)から始まる
絶対パスを付けて指定したほうが確実です。

もし、省略して保存すると現在のフォルダ(カレントフォルダ)に、
保存されてしまいます。

FileFormatは[名前を付けて保存]ダイアログボックスの
ファイルの種類に対応しており、保存するファイル形式が指定できます。

この引数は、すべて省略可能ですが、通常はFilenameだけを指定すればいいでしょう。

Filename自体を省略すると、現在のファイル名で保存されますから注意してくださいね。

というわけで、新規保存するマクロは、
このように簡素化できます。
Sub sinnkihozon()
    ActiveWorkbook.SaveAs Filename:="C:\見積書.xlsx"
End Sub    
となります。
Sub sinnkihozon()
    ActiveWorkbook.SaveAs Filename:="C:\見積書.xls"
End Sub    
Excel2003以前のファイルを保存する時は、拡張子を変更して

ファイル名を入力するダイアログを表示して保存

このマクロはマクロの記録では記録されないので、
直接書いてしまいましょう。
Sub ファイル名を入力して保存()
    Application.Dialogs(xlDialogSaveAs).Show
End Sub    
マクロを実行して確かめてくださいね。

Dialogsプロパティは、とても便利なコマンドです。

たとえば、
[ファイルを開く]ダイアログボックスを表示したければ、

Application.Dialogs(xlDialogOpen).Show

印刷ダイアログを表示したければ、

Application.Dialogs(xlDialogPrint).Show

とワンパターンで書けばよいのです。

今回はこれまで、That's it.

こちらもおすすめ