Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Presentation・プレゼンテーション » PowerPoint VBAで上書き保存をせずに閉じる

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「powerpoint vba close 保存せずに」
という検索キーワードでアクセスがありました。

PowerPoint VBAを使ってプレゼンテーションファイルを保存しないで閉じるには、どのようなコードを書けばいいのかを調べていた方による検索です。

ExcelのWorkbook.CloseとPowerPointのPresentation.Closeの違い

Excelの場合、WorkbookオブジェクトのCloseメソッドの引数・SaveChangesに、

Excel.Workbook.Close(引数SaveChanges)

Trueを指定することでブックを閉じるときに上書き保存し、Falseを指定すれば上書き保存しないようにすることができます。

[スポンサードリンク]

しかし、PowerPointのPresentationオブジェクトのCloseメソッドは引数を指定するようには作られていません。

PowerPoint.Presentation.Close

ですから、
「powerpoint vba close 保存せずに」
といった検索をなさった方の気持ちは、よく理解できます。

上書き保存をせず閉じるサンプル

以下のようなSubプロシージャで、アクティブなプレゼンテーションを除いて、すべてのファイルを上書き保存せず閉じられます。

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

  Next
 End With
End Sub

サンプルマクロで行っている処理について

最後に保存してからプレゼンテーションが変更されたかどうかを確認・設定できる、Presentation.Savedプロパティが存在します。

PowerPoint.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で上書き保存をせずに閉じる

「Presentation・プレゼンテーション」の記事一覧

検索


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

.