教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックを開いたり(Open)・閉じたり(Close)するにはどうすればいいの?教えて!

f:id:m_kbou:20200418124342p:plain

ExcelVBAの操作では、ブック(ファイル)を開いたり・閉じたりしながらデータのやり取り(コピー&貼り付け)の操作を行うケースが多々あります。この操作は頻繁に行う操作となるため、是非覚えておいてもらいたいと思います。今回はそのファイルの開き方や閉じ方について紹介します。

 

 

構文

記述方法は以下の通りとなります。

(1)ファイルのOPEN

Workbooks.Open "[開きたいファイルのパス]"

[説明]:

ブックを開くには「Workbooks.Open "[開きたいファイルのパス]"」と記述します。[開きたいファイルのパス]には開きたいファイルのパスを記述します。[開きたいファイルのパス]は「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[開きたいファイルのパス]にあるファイルを開いて下さい。」との意味になります。

[記述例]:

Workbooks.Open "C:\テスト\Book1.xlsx"

(2)ファイルのCLOSE

ActiveWorkbook.Close

Workbooks(”[閉じたいファイル名]”).Close

[説明]:

現在アクティブになっているブックを閉じるには「ActiveWorkbook.Close」と記述します。また、ファイル名を指定して閉じるには「Workbooks(”[閉じたいファイル名]”).Close」と記述します。[閉じたいファイル名]には閉じるファイル名を記述します。[閉じたいファイル名]は「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「現在選択しているファイル(アクティブなファイル)を閉じて下さい。又は[閉じたいファイル名]で指定したファイルを閉じて下さい。」との意味になります。

[記述例]:

ActiveWorkbook.Close
Workbooks("Book1.xlsx").Close

使い方

ファイルのOPEN

ファイルのOPENについてのプログラミング方法について説明します。

[プログラミング例]:

Sub サンプル()
  Workbooks.Open "C:\テスト\Book1.xlsx"
End Sub

内容は、「"C:\テスト\Book1.xlsx"のファイルを開いて下さい。」との意味になります。(※C:\テストにBook1.xlsxファイルが登録されていないと上記プログラミング例を実行してもエラーになります。登録されていない場合は予め作成しておいて下さい。)

f:id:m_kbou:20210204181602p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

※事前準備として、C:\テストにBook1.xlsxファイルを登録しておきます。

f:id:m_kbou:20210306114304p:plain

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210309084017p:plain

②上記の事前準備で登録したC:\テスト\Book1.xlsxファイルが開きます。

f:id:m_kbou:20210309084034p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

ファイルのOPENについてのプログラミング方法について説明は以上です。

 

ファイルのCLOSE

ファイルのCLOSEについてのプログラミング方法について幾つか説明します。

(1)アクティブファイルのCLOSE

まず最初に現在アクティブになっているファイルをCLOSEする方法について説明します。

[プログラミング例]:

Sub サンプル()
  ActiveWorkbook.Close
End Sub

内容は、「現在選択されているファイル(アクティブファイル)を閉じて下さい。」との意味になります。

f:id:m_kbou:20210204181737p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]: 

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210309084017p:plain

②今開いていたアクティブファイル(演習.xlsmファイル)が閉じます。 

f:id:m_kbou:20210306213705p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

アクティブファイルのCLOSE方法についての説明は以上です。

(2)指定したファイルのCLOSE

次に指定したファイルをCLOSEする方法について説明します。

[プログラミング例]:

Sub サンプル()
  Workbooks("Book1.xlsx").Close
End Sub

内容は、「現在開いているファイル:"Book1.xlsx"を閉じて下さい。」との意味になります。(※Book1.xlsxファイルが予め開いていないと上記プログラミング例を実行してもエラーになります。開いていない場合は予め開いておいてからプログラムを実行して下さい。)

f:id:m_kbou:20210204181756p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]: 

※事前準備として、C:\テストにBook1.xlsxファイルを登録し、登録したBook1.xlsxファイルを開いておきます。

f:id:m_kbou:20210306223729p:plain

f:id:m_kbou:20210306230017p:plain

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。また、この時点で事前準備で説明したBook1.xlsxファイルが開かれています。<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210309085351p:plain

②Book1.xlsxファイルが閉じます。(※指定したBook1.xlsxファイルが閉じられた事が分かります。)

f:id:m_kbou:20210321080432p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定したファイルをCLOSEする方法についての説明は以上です。

(3)指定したファイルを上書き保存してからCLOSE

次に指定したファイルを上書き保存してからCLOSEする方法について説明します。

[プログラミング例]:

Sub サンプル()
  Workbooks("Book1.xlsx").Close True
End Sub

内容は、「現在開いているファイル:"Book1.xlsx"を上書き保存してから閉じて下さい。」との意味になります。Closeの後に「True」を指定すると、ファイルを閉じる時に上書き保存してから閉じます。(※Book1.xlsxファイルが予め開いていないと上記プログラミング例を実行してもエラーになります。開いていない場合は予め開いておいてからプログラムを実行して下さい。)

f:id:m_kbou:20210204181813p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]: 

※事前準備として、C:\テストにBook1.xlsxファイルを登録し、登録したBook1.xlsxファイルを開いておきます。また、開いたBook1.xlsxファイルのA1セルに「テスト」の文字を入力しておきます。

f:id:m_kbou:20210306230549p:plain

f:id:m_kbou:20210306230605p:plain

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。また、この時点で事前準備で説明したBook1.xlsxファイルが開かれており、A1セルに「テスト」の文字が入力されています。<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210309093423p:plain

②Book1.xlsxファイルが閉じます。 

f:id:m_kbou:20210321080432p:plain

③再度C:\テスト\Book1.xlsxファイルを開きます。するとA1セルに「テスト」の文字が保存されている事が分かります。(※Book1.xlsxファイルが上書き保存されてから閉じられた事が分かります。)

f:id:m_kbou:20210306230631p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定したファイルを上書き保存してからCLOSEする方法についての説明は以上です。

(4)指定したファイルをファイル名を付けて保存してからCLOSE

最後に指定したファイルをファイル名を付けて保存してからCLOSEする方法について説明します。

[プログラミング例]:

Sub サンプル()
  Workbooks("Book1.xlsx").Close True, "C:\テスト\Book2.xlsx"
End Sub

内容は、「現在開いているファイル:"Book1.xlsx"を、「C:\テスト」ディレクトリに"Book2.xlsx"として名前を付けて保存してから閉じて下さい。」との意味になります。Closeの後に「True, 保存先パス&ファイル名」を指定すると、ファイルを閉じる時に指定したファイル名で名前を付けて保存してから閉じます。(※Book1.xlsxファイルが予め開いていないと上記プログラミング例を実行してもエラーになります。開いていない場合は予め開いておいてからプログラムを実行して下さい。)

f:id:m_kbou:20210204181833p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]: 

※事前準備として、C:\テストにBook1.xlsxファイルを登録し、登録したBook1.xlsxファイルを開いておきます。また、開いたBook1.xlsxファイルのA1セルに「テスト」の文字を入力しておきます。(この時点でC:\テストにはBook1.xlsxファイルしか登録されていません。)

f:id:m_kbou:20210306233126p:plain

f:id:m_kbou:20210306233136p:plain

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。また、この時点で事前準備で説明したBook1.xlsxファイルが開かれており、A1セルに「テスト」の文字が入力されています。<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210309093423p:plain

②Book1.xlsxファイルが閉じます。 

f:id:m_kbou:20210321080432p:plain

③C:\テストを確認すると、ディレクトリ内にBook1.xlsxファイルとBook2.xlsxファイルの2つが登録されている事が分かります。(※上記の事前準備ではC:\テスト内にBook1.xlsxファイルのみ登録されていましたが、Book2.xlsxファイルも新規で登録された事が分かります。)

f:id:m_kbou:20210306233255p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

指定したファイルをファイル名を付けて保存してからCLOSEする方法についての説明は以上です。

 

おわりに

今回はファイルのOPENとCLOSEについて説明をしました。VBAでのプログラミングでは頻繁に使用する内容となります。記述方法は差ほど難しくないため、有効に活用して下さい。