書くネタがないのでとりあえず割割り増しましで。
Application.Workbooks
Workbook = 今開いてるExcelファイル1個。
全体を保持するコレクションがApplication.Workbooks
。Applicationは省略できるので、単にWorkbooks
とも書ける。
Function FindBook(ByRef bookname As String) As Workbook For Each book In Workbooks If book.Name = bookname Then set FindBook = book Exit Function End If Next book set FindBook = Nothing End Function
注意点
Office2010以前だと、1つのウィンドウがあってその中にBookの子ウィンドウがたくさんある実装だが、 Wookbooksは、その1つのウィンドウ内のものだけを保持している。(らしい) 例えばxlsmとxlsを同時開きしても、互いに別のアプリのウィンドウでVBAから見えないため悲しみが生まれる。 これなんか解決策あるんかな。。
Workbook.Nameは、拡張子も含む。(タイトル部分ママ)ただし、未保存のものは拡張子のない「Book1」みたいな感じになる。