「マクロ sh.Parent.Close」
「VBA エクセル sh.Parent.Close savechanges」
といった検索で時折アクセスがあることに気が付きました。
Parent.Closeを確認するサンプルマクロ
以下のExcelマクロを含むブックを、「ParentのClose.xlsm」といった名前で保存しておいてから実行してみてください。
Dim obj As Object
Set obj = ActiveSheet.Parent
MsgBox TypeName(obj)
MsgBox obj.Name
obj.Close SaveChanges:=True
End Sub
オブジェクトの種類を表す「Workbook」
ブック名を表す「ParentのClose.xlsm」
がメッセージボックスに表示されてから、ブックが閉じられます。
「Workbook」を表示しているのが、
MsgBox TypeName(obj)
「ParentのClose.xlsm」を表示しているのが、
MsgBox obj.Name
の行です。最後の行
obj.Close SaveChanges:=True
が、「.Parent.Close」です。最初にオブジェクト変数objへ
Set obj = ActiveSheet.Parent
と代入を行っているわけですから。
Worksheet.ParentはWorkbook
Excelの大量のオブジェクトは階層構造になっており、Parentプロパティは、そのオブジェクトの上位のオブジェクトを取得するためのプロパティです。
「マクロ sh.Parent.Close」
「VBA エクセル sh.Parent.Close savechanges」
と検索なさった方の場合、オブジェクト変数shには、Worksheetが代入されているはずです。
WorksheetオブジェクトのParentプロパティで取得できる上位オブジェクトは
ブックを表すWorkbookオブジェクトですから
sh.Parent.Close
というコードは、WorkbookオブジェクトのCloseメソッドを
呼び出していることになります。
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Excel VBAのParent.Closeとは