Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Excel VBAのParent.Closeとは

動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2307 ビルド16626.20000 クイック実行)

「マクロ sh.Parent.Close」
「VBA エクセル sh.Parent.Close savechanges」
といった検索で時折アクセスがあることに気が付きました。

[スポンサードリンク]

Parent.Closeを確認するサンプルマクロ

以下のExcelマクロを含むブックを、「ParentのClose.xlsm」といった名前で保存しておいてから実行してみてください。

Sub WorksheetのParentをCloseする()
 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とは

「Workbooks・Workbook」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.