LIVERVA

LIVERVA

生活を豊かに、自由に、便利に

【ExcelVBA】ブックの操作(開く、閉じる、ワイルドカード)

ブックを開く

基本

Cドライブ内「data」フォルダ内のWb1を開く場合

Workbooks.Open Filename:= "C:\data\Wb1.xlsx"
Workbooks.Open  ("C:\data\Wb1.xlsx")

変数を使う

Dim path, book
path ="C:\data\"
book = "Wb1.xlsx"

Workbooks.Open (path & book)
セルの入力を使う → A1 = C:\data\
path = Range("A1").value
開く場合のオプション追加

①読み取り専用で開く

Workbooks.Open Filename:=  "C:\data\Wb1.xlsx", ReadOnly:=True

②パスワード付きのファイルを開く(パスワード=1234)

Workbooks.Open Filename:= "C:\data\Wb1.xlsx", Password="1234"

ブックを閉じる

基本

保存して閉じる
Workbooks("Wb1.xlsx").Close savechanges:=True
保存しない
Workbooks("Wb1.xlsx").Close savechanges:=False

ワイルドカードを使ったブックの開閉

「*」を使用する(文字数を問わない)

Dim path, book
path ="C:\data\"
book = Dir(path & "book*.xlsx") 

Workbooks.Open (path & book)

「book2021」や「book20210101」など複数該当する場合、
昇順で一番初めのファイルのみが開かれる

「?」を使用する(同じ文字数のもののみ)

Dim path, book
path ="C:\data\"
book = Dir(path & "book????????.xlsx") 

Workbooks.Open (path & book)

上記例だと、?は8つなので、8桁のみが該当する。

ワイルドカードで開いたものを閉じる

パターン1:ワイルドカードで閉じる
Dim path, book
Dim Wb As Workbook
path ="C:\data\"
book = Dir(path & "book????????.xlsx") 
Workbooks.Open (path & book)

For i = 1 To Workbooks.Count
    if Workbooks(i).Name Like "book????????.xlsx" Then
           Workbooks(i).Close
    End If
Next i
パターン2:開いたときに変数登録しておく
Dim path, book
Dim Wb As Workbook
path ="C:\data\"
book = Dir(path & "book????????.xlsx") 
Workbooks.Open (path & book)
Set Wb = ActiveWorkbook

Wb.Close
HOME  /  プライバシーポリシー・免責事項  /  お問い合わせ