【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として約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

    SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

    弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

    「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
    更新日 : 2019年10月7日

    書いた人

    Sanshiro Wakizaka

    Sanshiro Wakizaka

    フリーランスエンジニア兼ライターのワキザカ サンシロウです。
    ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

    プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

    おすすめコンテンツ

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

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