【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

    無料でSEからWebエンジニアへ転職しませんか?



    侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

    • システムエンジニアという職業だけどコードが書けない
    • 事務作業が多くスキルがないため将来が不安
    • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
    という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

    弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

    既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

    まずは無料体験レッスンを予約する

    書いた人

    Sanshiro Wakizaka

    Sanshiro Wakizaka

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

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説