保存されているExcelファイル(ブック)を開くには、WorkbooksコレクションのOpenメソッドを使用します。
Workbooks.Open ファイル名
Openメソッドは開いたブックを表すWorkbookオブジェクトを返しますので、後で使うためにオブジェクトを保存するには次のように引数を括弧で囲んで呼び出します。
Dim wb As Workbook
Set wb = Workbooks.Open(ファイル名)
次の例は、マクロを含むブックと同じフォルダにあるBook1.xlsxをというファイルを開きます。
Sub sample()
Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & "Book1.xlsx"
End Sub
このコードはOpenメソッドの引数に絶対パスのファイル名を渡しています。
次の例はOpenメソッドから返されるWorkbookオブジェクトを変数に保存する例です。この例も同様にマクロを含むブックと同じフォルダにあるBook1.xlsxを開きます。
Sub sample()
Dim wb As Workbook
ChDir ThisWorkbook.Path
Set wb = Workbooks.Open("Book1.xlsx")
End Sub
このコードは初めにカレントディレクトリをマクロを含むブックのフォルダに変更します。次にOpenメソッドの引数に相対パス(ファイル名だけ)を指定していますので、カレントディレクトリのBook1.xlsxを開きます。
さまざまな引数を指定する
外部参照(リンク)の更新方法を指定する ― UpdateLinks引数
UpdateLinks引数には、ブック内の外部参照(リンク)の更新方法を指定します。この引数を省略した場合、外部参照(リンク)の更新方法をユーザに求めます。引数に指定する値は次のいずれかです。
| 値 | 説明 |
|---|---|
| 0 | 外部参照(リンク)は更新しない。 |
| 3 | 外部参照(リンク)は更新する。 |
読み取り専用でブックを開く ― ReadOnly引数
ReadOnly引数にTrueを指定すると、ブックを読み取り専用モードで開きます。
Format引数
Format引数には、テキストファイル開く場合の区切り文字を指定します。この引数を指定すると現在の区切り文字が使用されます。指定できる値には次のものがあります。
| 値 | 説明 |
|---|---|
| 1 | タブ |
| 2 | カンマ |
| 3 | スペース |
| 4 | セミコロン |
| 5 | なし |
| 6 | カスタム文字(引数Delimiterで指定) |
区切り文字はデータから選ぶ文字?
CSVファイルはこの引数を指定する必要ない?拡張子がCSVのとき、ほかの拡張子でも必要ない?
Delimiter引数
ファイルがテキストファイルで、なおかつFormat引数が6の場合は、この引数に指定された文字が区切り文字として使われます。文字列を指定した場合は最初の文字が使用されます。