「powerpoint vba close 保存せずに」
という検索キーワードでアクセスがありました。
PowerPoint VBAを使ってプレゼンテーションファイルを保存しないで閉じるには、どのようなコードを書けばいいのかを調べていた方による検索です。
ExcelのWorkbook.CloseとPowerPointのPresentation.Closeの違い
Excelの場合、WorkbookオブジェクトのCloseメソッドの引数・SaveChangesに、
Trueを指定することでブックを閉じるときに上書き保存し、Falseを指定すれば上書き保存しないようにすることができます。
しかし、PowerPointのPresentationオブジェクトのCloseメソッドは引数を指定するようには作られていません。
ですから、
「powerpoint vba close 保存せずに」
といった検索をなさった方の気持ちは、よく理解できます。
上書き保存をせず閉じるサンプル
以下のようなSubプロシージャで、アクティブなプレゼンテーションを除いて、すべてのファイルを上書き保存せず閉じられます。
Dim i As Long
With Presentations
For i = .Count To 1 Step -1
With .Item(i)
If .Name <> ActivePresentation.Name Then
.Saved = msoTrue
.Close
End If
End With
End With
End Sub
サンプルマクロで行っている処理について
最後に保存してからプレゼンテーションが変更されたかどうかを確認・設定できる、Presentation.Savedプロパティが存在します。
このPresentationオブジェクトのSavedプロパティにmsoTrueを設定してから、
With .Item(i)
If .Name <> ActivePresentation.Name Then
.Saved = msoTrue
Presentation.Closeメソッドでプレゼンテーションを閉じています。
.Close
For Each~Nextループを使うと、オブジェクトの数が減るときの動作がExcelとPowerPointでは異なり、PowerPointでは上手く行かないケースがあるため、For~Nextループの「Step -1」を利用しています。
With Presentations
For i = .Count To 1 Step -1
最終更新日時:2021-09-05 07:12
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Presentation・プレゼンテーション » PowerPoint VBAで上書き保存をせずに閉じる