【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つを覚えておけば、こわいものなしです!

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

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

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

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

おすすめコンテンツ

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

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