【ExcelVBA入門】SaveAsメソッドを使ったファイル保存方法を徹底解説!

皆さんは、VBAでファイルを保存する方法を知っていますか?

SaveAsメソッドを使えば、簡単にファイルを保存することができるのでおすすめです!

そこで今回は、

  • SaveAsメソッドの使い方
  • ファイルフルパスの取得方法
  • SaveAsを使ったファイル保存サンプルコード
  • 名前で競合が起きたときの対処方法

といった基礎的なことから、応用的な方法まで、徹底的に解説します

SaveAsの使い方とは

SaveAsメソッドは、ファイルを保存するためのメソッドです。

以下のようにワークブックを指定して書きます。

基本的にはこれだけでもOKなのですが、ファイルパスの指定以外にも便利なオプションがあるのでいくつかご紹介します。

Noオプション名概要値の入れ方
1Filenameファイルパスを含めたファイル名文字列でパス指定
2FileFormatファイルを保存するフォーマットを指定.csv :xlCSV
.txt :xlText
.xlsx :xlOpenXMLWorkbook
.xlsm:xlOpenXMLWorkbookMacroEnabled
3Passwordファイルを保護するパスワードを指定 (15文字以内)文字列でパスワードを指定
4CreateBackupバックアップ ファイルを作成有無True/Falseを指定 (Trueで作成)

オプションを付ける場合は、カンマ区切りで「オプション名:=値」のように書きます。

サンプル:

警告メッセージで処理が止まるのを防ぐ方法

今まで説明した内容でファイル保存自体はできるのですが、ファイル名が重複してしまった場合以下のようなメッセージが出て処理が止まってしまいます。

回避策は2つあるので、それぞれご紹介します。

回避策1:ファイル名を重複しない名前にする

1つ目は、「年月日時分秒ミリ秒」をファイル名に入れる方法です。

「ファイル共通項目_YYYYMMDDHHMMSSmsmsms.xlsx」のような感じですね。

のように書くと、「2018/08/08 14:00:30 830」と年月日時分秒ミリ秒を取得することができるので、少し応用して「/」や「:」や半角スペースなどを削除して使います。

コードサンプル:

実行結果:

新しくファイルを作ることを前提にすれば、この方法を使うだけでもOKです。

回避策2:警告メッセージを非表示にする

2つ目は、警告メッセージ非表示にする方法です。

この方法を使えば、同じファイルの更新でもメッセージで止まることなく保存ができます。

のように「メッセージ非表示→ファイル保存→メッセージ再表示解除」の流れで書くことで、一時的に警告メッセージだけを非表示にすることができます。

用途に応じて使い分けるのがおすすめです!

サンプルコード

最後に、名前を付けて保存する場合、同じファイル名で更新する場合のサンプルを用意しました。

名前を付けて保存するサンプル:

ファイルを上書きするサンプル:

まとめ

今回は、ファイルを保存するためのSaveAsメソッドの使い方について解説しました。

Excelを使っているとファイルを保存するケースはよくあります。名前を付けて保存・上書き保存の2つを覚えておけば、こわいものなしです!

どちらも簡単なので、ぜひ使ってみてくださいね。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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