【VBA】エクセルファイルを上書き保存して閉じる

開いているエクセルファイル(ブック)を上書き保存するにはSaveメソッド、閉じる時はCloseメソッドを使用します。

保存するエクセルファイルは、「ファイル名」または「ワークブック変数」で指定できます。

スポンサーリンク

ファイル名で指定

Workbooksコレクションで、ファイル名を指定してファイルを操作します。

コード

 

解説

「生徒一覧表.xlsx」というファイルを「開く」→「上書き保存」→「閉じる」と順番に処理しています。

VBAを始めたばかりだと、この書き方が見やすく簡単に感じると思います。

ただし、この書き方には1つ問題があります。

対象のファイル名が変わった時、ファイル名「生徒一覧表.xlsx」を記述している3カ所の修正が必要になってしまいます。そのため、次で紹介するワークブック変数で指定する方法がオススメです。

ワークブック変数で指定

処理対象のファイルをワークブック変数に格納し、以降の処理ではワークブック変数でファイルを操作します。

コード

 

解説

エクセルファイルを開いたタイミングで、ワークブック変数(openExcelFile)に開いたエクセルファイルを格納しています。

その後の「上書き保存」と「閉じる」処理は、ワークブック変数(openExcelFile)に対して行っています。

 

最初に紹介したファイル名で指定したプログラムとの違いは、ファイル名「生徒一覧表.xlsx」がプログラム上に1カ所しかないことです。

そのためファイル名が変更になっても、プログラムの修正は1カ所だけでいいので、メンテ性が高いプログラムと言えます。

その他の注意すること
ファイルを開く時は、フルパス(場所+ファイル名)でファイルを指定します。
上書き保存や閉じる時は、ファイル名だけの指定です。(同名のファイルは同時に開けないので、ファイル名だけ特定できるから)

関連記事

VBAテクニック辞典
VBAテクニック辞典
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
エクセルVBAおすすめ本|実際に読んだ本を目的別に紹介
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
中途・未経験でプログラマーに転職する方法【30代前半までが勝負】
タイトルとURLをコピーしました