0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【VBA】ブックの操作(開く・閉じる・保存)

Posted at

メモ

業務でブックの操作を行うVBAを書く事があるが、良く忘れるのでメモに残しておく。

ブックを開く

WorkBooksコレクションのOpenメソッドで開けます。

シンプルにフォルダパスを指定して、ブックを開く場合は下記のように指定しています。

フォルダパスを指定して、開く。
Sub Book_Open()
      
      Workbooks.Open("C:\Open_Target.xlsx")
    
End Sub

同じ配下にあるブックを開きたい場合は、ThisWorkbook.Pathを使用しています。

同じ配下のブックを開く。
Sub Book_Open()

    Workbooks.Open (ThisWorkbook.Path & "\Open_Target.xlsx")

End Sub

上記のコードで開いたブックが、アクティブなブックになります。開いたブックで処理を行いたい場合は、このまま処理を進めて良いと思います。
違うブックで処理をしたい場合は、WorkBooksコレクションのActivateメソッドでアクティブ化したいブックを指定します。

ブックをアクティブ化
Sub Book_Activate()

    Workbooks.Open(ThisWorkbook.Path & "\Open_Target.xlsx")
    
    Workbooks("aaaaa.xlsx").Activate

End Sub

基本的には、ブックの操作はオブジェクト変数に格納して行う事が自分は多いです。
その方がコードの管理が個人的に楽です。

オブジェクト変数に格納
Sub Book_Activate()

    Dim wb1, wb2 As Workbook
    
    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks.Open(ThisWorkbook.Path & "\Open_Target.xlsx")
    
    Debug.Print wb1.Name
    Debug.Print wb2.Name

End Sub

ブックを閉じる

WorkBooksコレクションのCloseメソッドで閉じる事が出来ます。

ブックを閉じる
Sub Book_Close()

    Dim wb As Workbook
    Set wb = Workbooks("Close_Target.xlsx")
    wb.Close
    
End Sub

ブックに変更がある場合は、下記のようなポップアップが出てきます。

image.png

ポップアップを出したくない場合は、SaveChangesオプションを使用しています。
Falseを指定した場合は、保存せずに閉じる。Trueを指定した場合は、保存して閉じます。
※Application.DisplayAlerts = False を記載して、画面の更新を止める事で対応する事も可能です。(ブックは保存されないです。)

ブックを保存せずに閉じる。(ポップアップを出さない。)
Sub Book_Close()

    Dim wb As Workbook
    Set wb = Workbooks("Close_Target.xlsx")
    wb.Close SaveChanges:=False
    
End Sub

ブックを保存

WorkBooksコレクションのSaveメソッドで閉じる事が出来ます。

ブックを保存
Sub Book_Save()

    Dim wb As Workbook

    Set wb = Workbooks("Save_Target.xlsx")
    wb.Save
    
End Sub

名前を付けて保存する場合は、WorkBooksコレクションのSaveAsメソッドを使用します。

名前を付けて保存
Sub Book_Save()

    Dim wb As Workbook

    Set wb = Workbooks("Save_Target.xlsx")
    wb.SaveAs (Format(Date, "yyyymmdd") & "_" & wb.Name)

End Sub
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?