ブックを操作する中で様々な操作方法があります。
ブックのアクティブについては過去の記事で説明しています。☟
【VBA知識 12】別のシートをアクティブ・選択する方法について ► 独学エクセル塾 (dokugakuexcel.com)
今回はブック操作の中でもブックを開く・ブックの作成・
ブックの名前の変更・ブックを閉じる操作について、ご紹介します。
ブックをアクティブにする操作に加え、今回の記事を身につけると
ブック関係の操作は網羅できるようになります。
ぜひ参考にしてみてください。
それでは見ていきましょう。
■ブックを開く
・ファイル名を直接入力して開く
まず、ブックを開く操作について説明します。
ブックを開く際には下記のようなプログラムになります
Workbooks.Open “ブックのフルパス”
フルパスの表示方法についてはファイルのプロパティからも拾えるのですが
クイックアクセスツールバーに追加しておくと、とても便利です
クイックアクセスツールバーの追加については
「ファイル」→「オプション」→「クイックアクセスツールバー」を選択し
コマンドの選択を「リボンにないコマンド」にします。
そこに「ドキュメントの場所」があるので選択して「追加」をして「OK」で追加されます。
ちなみに見本ブックというものを作成しました。
そちらはCドライブに直接保存したのですがこのようになります。
クイックアクセスツールバーにドキュメントの場所が表示されていますね。
ちなみに見本ブックは「C:\見本ブック.xlsm」のようになっています。
ではこちらをVBAを使用して開いてみましょう。
プログラムがこのようになります。
Sub ブックを開く()
Workbooks.Open “C:\見本ブック.xlsm“
End Sub
こちらで見本ブックを開いてくれます。
・変数のブック名を開く
今度はブック名を変数に格納してある状態でブックを開いてみましょう。
プログラムはこのようになります。
Sub 変数のブックを開く()
Dim Bookname As String
Bookname = “C:\見本ブック.xlsm”
Workbooks.Open Bookname
End Sub
これにより変数名のブックを開くことができます。
ファイル1、ファイル2とファイル名の番号が変わって、各ファイルに書き込むときには変数を使用したほうが楽ですね。
■ブックの作成を行う
今度はブックの作成についてです。
こちらはデータの集計結果を別ファイルに作成し、出力するときなどに使えそうですね。
プログラムはこのようになります。
Workbooks.Add
これだけです。
一応作成したプログラムを載せておきます。
Sub 新しいブックを作成する()
Workbooks.Add
End Sub
実行すると新しいブックの「Book1」が作成されました。
■ブックに名前を付ける
先ほどばブックを作成しましたが
今度はブックに名前を付けてみましょう。
プログラムはこのようになります。
ActiveWorkbook.SaveAs Filename:=”パス+ファイル名+.xlsx“
パスとファイル名は保存したい場所・ファイル名を入力してください。
ちなみに対象は「ActiveWorkbook」にしていますが、変数でも構いません
見本プログラムを下記にのせておきます。
Sub ブックに名前を付けて保存()
Dim Bookname As Workbook
Set Bookname = ActiveWorkbook
Bookname.SaveAs Filename:=”パス+ファイル名+.xlsx“
End Sub
xlsmで保存の際のエラーの対応や「txt(テキスト)」「csv」ファイルで保存する際の
記事については下記でまとめてますので是非参考にしてみてください。
【マクロVBAエラー対応】「.xlsm」の拡張子でブックの名前を付けて保存ができない対応方法 ► 独学エクセル塾 (dokugakuexcel.com)
■フォルダに入っているブックを別フォルダに移動させる
では次にエクセルのファイルを
現在入っているフォルダから別のフォルダに移動させましょう。
こちらは移動ととらえるより、先ほど名前を付けたように
パスを書き換えるという方がイメージが付きやすいかもしれません
見本で「C:\見本フォルダ①」のフォルダに「1Book.xlsx」というファイルを作ってみました
こちらを見本フォルダ②に入れてみましょう。
ちなみに見本フォルダ②は現在何も入っていません。
プログラムは下記の通りです。
Name “変更前のパス+ファイル名” As “変更前のパス+ファイル名”
では当てはめていきましょう
“変更前のパス+ファイル名”は「C:\見本フォルダ①\1Book.xlsx」になります。
“変更後のパス+ファイル名”は「C:\見本フォルダ②\1Book.xlsx」になります。
合わせると…
Sub ファイルの位置の変更()
Name “C:\見本フォルダ①\1Book.xlsx” As “C:\見本フォルダ②\1Book.xlsx”
End Sub
このようになります。
では実行してみましょう。
見本フォルダ①の方は…
空になりました。
見本フォルダ②を見てみると…
ファイルが移動したことがわかりますね。
ちなみにブックの移動は通常の動作と同様に指定ファイルは閉じた状態でないと異常が表示されます。
■ブックを保存する
ではブックの保存について見ていきましょう。
保存のプログラムはこのようになります。
Workbooks(“ファイル名“).Save
ここではパスなど入れずにファイル名のみ入れてください。
「Book.xlsx」というファイルがあったとするとプログラムはこのようになります。
Sub ブックの保存()
Workbooks(“Book.xlsx“).Save
End Sub
変数を用いた場合はこちら…
Sub ブックの保存()
Dim Bookname As Workbook
Set Bookname = ActiveWorkbook
Bookname.Save
End Sub
■ブックを閉じる
最後のブック操作はブックを閉じるについてです。
ブックを閉じるプログラムはこのようになります。
Workbooks(“ファイル名“).Close
ここでも保存と同様にパスなど入れずにファイル名のみ入れてください。
「Book.xlsx」というファイルがあったとするとプログラムはこのようになります。
Sub ファイルを閉じる()
Workbooks(“Book.xlsx“).Close
End Sub
ちなみに変数を使用したブックを閉じる際は
変数.closeのみで構いません。
見本のプログラムも載せておきます。
Sub ファイルを閉じる()
Dim Bookname As Workbook
Set Bookname = ActiveWorkbook
Bookname.Close
End Sub
⬛︎公式の説明
わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟
Workbooks.Open メソッド (Excel) | Microsoft Learn
Workbooks.Add メソッド (Excel) | Microsoft Learn
Workbook.SaveAs メソッド (Excel) | Microsoft Learn
Workbook.Save メソッド (Excel) | Microsoft Learn
Workbook.Close メソッド (Excel) | Microsoft Learn
■まとめ
いかがだったでしょうか。
これでブック操作はマスターできたと思います。
未処理ファイルを開いて処理して処理済みフォルダに格納…
のようなプログラムも組めますね。
ぜひ参考にしてみてください。
次回はシートの操作についてまとめています。記事はこちらから☟
【マクロVBA知識 17】シートを作成・名前を付ける・ブック内/外へコピー・移動・削除する。 ► 独学エクセル塾 (dokugakuexcel.com)
それでは次回の記事でお会いしましょう。