【簡単エクセルマクロ・VBA】ファイル(ワークブック)を閉じる方法|Close/SaveAs|ファイル操作 #004
いつもありがとうございます。
これは、ノンプログラマー向けのエクセルマクロ・VBA解説シリーズです。
本稿では、ファイル(ワークブック)を閉じる方法を解説いたします。
ことばの意味
- ノンプログラマー
プログラミングを本職としない人たちのことです。 - マクロ
VBAを使って作成される「機能」のことです。 - VBA
Visusal Basic for Application の略で、プログラミング言語のことです。 - ワークブック
エクセルファイルのことです。
筆者の記事関連経験/資格
- VBA使用経験 約20年
- Python 3 エンジニア認定基礎試験 合格
一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。
VBAにおけるファイル操作の全体像
VBAにおける「ファイル操作」の全体像は以下の記事で解説しております。
本稿では「ファイル操作」の一部である「ファイル(ワークブック)を閉じる方法」を解説いたします。
VBAでファイル(ワークブック)を閉じる方法
開いたファイルを閉じる方法
開いたファイル(ワークブック)を閉じる構文を以下に示します。
Workbooks(Filename).Close
Filename は対象ファイルのフルパスです。
Closeメソッド には引数 SaveChanges が指定できます。
SaveChanges は、変更した内容を保存するかしないかの指定です。
変更を保存しないで閉じる場合には以下のように記述します。
Workbooks(Filename).Close SaveChanges:=False
変更を保存して閉じる場合には以下のように記述します。
Workbooks(Filename).Close SaveChanges:=True
実際のコードの実装例を以下に示します。
Sub Sample()
' 変数宣言
Dim wb As Workbook
Dim fp As String
' ファイルを開く
fp = ThisWorkbook.Path & "\your_book.xlsx"
Set wb = Workbooks.Open(fp)
' ここに行いたい操作を書いてください
Application.Wait (Now + TimeValue("0:00:01")) ' 例として1秒マクロを停止するコードを書きます
' ファイルを閉じる
wb.Close SaveChanges:=False
End Sub
ことばの意味
- 構文
プログラミング言語の文法のことです。 - メソッド
オブジェクトを操作するための命令文のことです。 - 引数
メソッドや関数、プログラムを制御するために渡す値やオブジェクトのことです。
開いたファイルを別名で保存して閉じる方法
開いたファイルを別名で保存して閉じる構文を以下に示します。
' 別名で保存
Workbooks(Filename).SaveAs Filename:="新しいファイル名"
' ファイルを閉じる
Workbooks(New_Filename).Close SaveChanges:=True
New_Filename は、別名で保存するファイルのフルパスです。
実際のコードの実装例を以下に示します。
Sub Sample2()
' 変数宣言
Dim wb As Workbook
Dim fp As String
Dim new_fp As String
' ファイルを開く
fp = ThisWorkbook.Path & "\your_book.xlsx"
Set wb = Workbooks.Open(fp)
' ここに行いたい操作を書いてください
Application.Wait (Now + TimeValue("0:00:01")) ' 例として1秒マクロを停止するコードを書きます
' ファイルを別名で保存して閉じる
new_fp = wb.Path & "\new_book.xlsx"
wb.SaveAs Filename:=new_fp ' 別名で保存
wb.Close SaveChanges:=True ' 変更内容を保存して閉じる
End Sub
このコードを実行すると、上図のようにマクロを記録しているファイルと同じ階層に "new_book.xlsx" が保存されます。
おわりに
ご覧いただきありがとうございました。
本稿では、「ファイル操作」の中の「ファイル(ワークブック)を閉じる方法」を解説いたしました。
お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。
皆様の人生がより一層素晴らしいものになるよう、少しでもお役に立てれば幸いでございます。
VBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAプログラミングのスキルアップ
学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。
入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるより、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。
私は、迷った場合は、インプレス社の「いちばんやさしい」シリーズを購入することが多いです。
>>Amazon で VBA の書籍をでチェックする>>楽天市場 で VBA の書籍をチェックする
>>Yahoo!ショッピングでVBAの書籍をチェックする
VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
こちらの記事でも紹介しております。もしよろしければご覧ください。