【ExcelVBA入門】ワークブックを保存する方法を徹底解説!

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、VBAでブックを保存する方法を知っていますか?更新したデータを上書き保存したいとき、新しく名前を付けて保存したいときなどブックを保存したいケースはよくありますよね。

そこで今回は、

  • ブックを保存する方法とは

といった基礎的なことから、

  • 上書き保存する方法
  • 名前を付けて保存する方法
  • 合わせて覚えると便利なCloseメソッドの使い方
  • といった応用的な方法まで、徹底的に解説します!

    VBAでブックを保存する方法

    はじめに、ブックを保存する方法について解説します。ブックを保存する方法は2つあるので、それぞれ解説しますね。

    上書き保存する方法

    まずは、ブックを上書きする方法について解説します。Saveメソッドを使って次のように書くことで、簡単にファイルを上書き保存することができます。

    Saveメソッドの使い方:

    ワークブック.Save

    ワークブックの指定方法はいくつかあるので、それぞれ上書き保存するサンプルを用意しました。

    Saveメソッドを使ったサンプルコード:

    ThisWorkBook.Save                  'マクロ実行ブックの上書き保存
    ActiveWorkBook.Save               'アクティブワークブックの上書き保存
    Workbooks("ブック名").Save    'ブック名を指定した上書き保存

    ThisWorkBookでマクロ実行ブック、ActiveWorkBookでアクティブワークブック、Workbooks("ブック名")でブック名を指定して保存するサンプルです。このように、簡単にブックを上書き保存することができます。

    Saveメソッドの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

    【ExcelVBA入門】Saveメソッドでファイルを上書き保存する方法とは
    更新日 : 2018年8月17日

    名前を付けて保存する方法

    次に、名前を付けて保存する方法について解説します。SaveAsメソッドを使って次のように書くことで、名前を付けて保存することができます。

    SaveAsメソッドの使い方:

    ワークブック.SaveAs  ファイル名を含めたファイルパス

    Saveメソッドと同じようにワークブック指定方法はいくつかあるので、それぞれ上書き保存するサンプルを用意しました。

    SaveAsメソッドを使ったサンプルコード:

    'マクロ実行ブックの上書き保存
    ThisWorkBook.SaveAs ThisWorkBook.Path & “Test1.xlsx”
    
    'アクティブワークブックの上書き保存
    ActiveWorkBook.SaveAs ActiveWorkBook.Path & “Test2.xlsx”
    
    'ブック名を指定した上書き保存
    Workbooks(“ブック名”).SaveAs Workbooks(“ブック名”).Path & “Test3.xlsx”
    

    このように、簡単に名前を付けて保存することができます。

    SaveAsメソッドの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

    【ExcelVBA入門】SaveAsメソッドを使ったファイル保存方法を徹底解説!
    更新日 : 2019年4月2日

    ダイアログでファイルを指定して保存する方法

    名前を付けて保存する場合、保存場所・ファイル名を指定して保存したいときもありますよね。GetSaveAsFilenameメソッドを使えば、簡単に保存先・ファイル名を指定することができます。

    SaveAsメソッドと組み合わせて指定した保存先・ファイル名で保存するサンプルを用意しました。

    ファイル保存前のフォルダ:

    サンプルコード:

    Sub Test()
      'ダイアログで保存先・ファイル名を指定
      Dim strFilePath As String
      strFilePath = Application.GetSaveAsFilename
    
      '名前を付けて保存
      ThisWorkbook.SaveAs strFilePath
    End Sub

    実行直後に出てくるダイアログボックス:

    保存先・ファイル名を入力して保存ボタンをおすことで、ファイルが保存されます。

    実行後のフォルダ:

    このように、保存時に保存先・ファイル名を指定したい場合はGetSaveAsFilenameメソッドがおすすめです!

    ブックを保存してから閉じる方法

    次に、ブックを保存してから閉じる方法について解説します。Closeステートメントを使えば、以下のように簡単に保存後にブックを閉じることができます。

    保存後にブックを閉じる方法:

    ワークブック.Close True              '上書き保存して閉じる
    ワークブック.Close True , ファイルパス '名前を付けて保存してから閉じる
    

    このように、簡単にブック保存後に閉じることができます。Closeステートメントの詳しい使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

    【ExcelVBA入門】ワークブックを閉じる方法を徹底解説!
    更新日 : 2019年4月17日

    保存時の警告メッセージを非表示にする方法

    ファイル保存時に既にファイルがある場合や、初めてブックを作成したときに上書き保存してしまった場合などに、警告メッセージが表示されるときがあります。

    VBAの処理が途中で止まってしまうため、一時的にメッセージを非表示にして処理を進めるのがおすすめです。以下のように「Application.DisplayAlerts」で処理を囲むことで、メッセージを無視してブックを保存することができます。

    'メッセージを無視してそのまま保存
    Application.DisplayAlerts = False 'メッセージを一時的に非表示
    ThisWorkBook.SaveAs ThisWorkBook & "Test.xlsx"
    Application.DisplayAlerts = True   'メッセージを表示設定に戻す

    DisplayAlertsプロパティの使い方については以下で詳しく解説しているので、気になる方は見てみてくださいね!

    【ExcelVBA入門】DisplayAlertsプロパティでメッセージを制御する方法とは
    更新日 : 2019年5月21日

    合わせて覚えると便利なブック操作方法

    ここまでブックを保存する方法をメインに解説してきました。ただ、ブックを保存する処理以外にもブック操作で覚えておくと便利なメソッド・プロパティはたくさんあります。

    ブックの作成・データ取得・データコピー・閉じる処理など、以下で詳しく解説しているので気になる方は見てみてくださいね!

    【ExcelVBA入門】ワークブック操作する方法について徹底解説!
    更新日 : 2019年8月28日

    まとめ

    今回は、ブックを保存する方法について解説しました!

    今回解説した、

  • 上書き保存する方法
  • 名前を付けて保存する方法
  • ダイアログボックスで保存先・ファイル名を指定して保存する方法
  • ブックを保存してから閉じる方法
  • の4つを覚えておけば応用が利くので、ぜひ使ってみてくださいね!

    LINEで送る
    Pocket

    「プログラミング、右も左もわからない…」という方にオススメ

    当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

    その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

    侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

    cta_under_bnr

    「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

    書いた人

    Sanshiro Wakizaka

    Sanshiro Wakizaka

    新卒入社したメーカー系のIT企業で、システムエンジニアとして約5年勤務。
    Webアプリ、業務アプリ開発において、要件定義、設計、インフラ、製造、テスト、運用保守など、様々な経験あり。
    また、侍ブログ編集部として、これまでに200記事以上の記事を執筆。
    現在はフリーランスエンジニア兼テックライターとして活動中。