ExcelマクロVBA入門 | 第64回.ブックを閉じる・保存(Close,Save,SaveAs) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-10-19

第64回.ブックを閉じる・保存(Close,Save,SaveAs)


ワークブックを閉じる場合、保存する場合のマクロVBAの説明です。



・閉じる


Workbook.Closeメソッド


Workbook.Close SaveChanges, Filename, RouteWorkbook

SaveChanges ブックに変更がない場合、この引数は無視されます。ブックに変更がある場合、この引数で変更を保存するかどうかを指定します。
Filename 変更後のブックのファイル名。
RouteWorkbook ブックの回覧。


全ての引数がオプション(任意の指定)となっています。


全ての引数を省略し、


Workbook.Close


とした場合は、ブックに変更が無ければそのまま閉じられ、


ブックに変更がある場合は、保存確認のメッセージが表示されます。


SaveChanges


ブックに変更がある場合に、保存するかどうかを指定します。


保存しないで閉じる


Workbook.Close SaveChanges:=False


保存して閉じる


Workbook.Close SaveChanges:=True


他の引数は、通常は使用しません。




・上書き保存


Workbook.Saveメソッド


Workbook.Save


上書き保存されます。




・名前を付けて保存


Workbook.SaveAsメソッド


Workbook.SaveAs FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local

Filename 保存するファイルの名前を表す文字列を指定します。
FileFormat ファイルを保存するときのファイル形式を指定します。
Password ファイルを保護するためのパスワードを表す15 文字以内の文字列を指定します。
WriteResPassword ファイルの書き込みパスワードを表す文字列を指定します。
ReadOnlyRecommended 読み取り専用で開くことを推奨するメッセージを表示するには、True を指定します。
CreateBackup バックアップ ファイルを作成するには、True を指定します。
AccessMode ブックのアクセス モードを指定します。
ConflictResolution ブックを保存するときの競合の解決方法を指定します。
AddToMru 最近使用したファイルの一覧にブックを追加するにはTrueを指定。既定値はFalseです。
TextCodepage 使用しない。
TextVisualLayout 使用しない。
Local 使用しない。


全ての引数がオプション(任意の指定)となっています。


しかし、通常は、FileNameは必ず指定します。



FileName


フルパスで指定して下さい。


パスを指定しない場合は、カレントフォルダーに保存されます。


使用例


Workbook.SaveAs "C:\User\sample.xls"



FileFormat


xlExcel8 : Excel2007以降の、xlsxまたはxlsm
xlExcel9795 : Excel2003以前のxls


Excel2003以前では、xlExcel8、この定数は使用できません、コンパイルエラーとなります。




・コピーを保存


Workbook.SaveCopyAsメソッド


Workbook.SaveCopyAs Filename


ブックのコピーをファイルに保存します。


メモリ上のブックに対しては、変更は行われません。


バックアップの作成等で使用します。



・実践例

 他のブックが開かれている場合は、自身のブックを閉じ、


他のブックが開かれていない場合は、Excelを終了する場合。

Sub 保存して終了()
  If Workbooks.Count > 1 Then
    ThisWorkbook.Close SaveChanges:=True
  Else
    ThisWorkbook.Save
    Application.Quit
  End If
End Sub
Sub 保存しないで終了()
  If Workbooks.Count > 1 Then
    ThisWorkbook.Close SaveChanges:=False
  Else
    ThisWorkbook.Saved = True
    Application.Quit
  End If
End Sub


Application.Quit

 Applicationオブジェクトのメソッドで、Excelを終了します。


ThisWorkbook.Saved = True

 .Savedは、ブックが保存後に変更されたかの条法が入っています、値の設定も可能。


.SavedをTrueにすることで、保存後に変更が無い状態にすることで、


Close時に、保存確認のメッセージが表示されないようにしています。


これは、


Application.DisplayAlerts = False

Application.Quit

 としても同じ結果にはなります。






同じテーマ「ExcelマクロVBA入門」の記事

第65回.シートの追加、名前の変更(Add,Name)
第66回.シートのコピー・移動・削除(Copy,Move,Delete)
第67回.総合練習問題7
第68回.シートの保護(Protect)
第69回.シートの非表示(Visible)
第70回.ウィンド枠の固定(FreezePanes)
第71回.印刷(PrintOut)

新着記事 ・・・新着記事一覧を見る

SUMIFの間違いによるパフォーマンスの低下について|エクセル関数超技(6月17日)
条件式のいろいろな書き方:TrueとFalseの判定とは|ExcelマクロVBA技術解説(6月15日)
空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.定数と型宣言文字(Const)|ExcelマクロVBA入門
10.CSVの読み込み方法|ExcelマクロVBAサンプル集



  • >
  • >
  • >
  • ブックを閉じる・保存(Close,Save,SaveAs)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP