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

上書き保存をせずに閉じるPowerPointマクロ

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

「powerpoint vba close 保存せずに」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。

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

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

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

上書き保存をせずに閉じるPowerPointマクロ

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

[スポンサードリンク]

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

上書き保存をせずに閉じるPowerPointマクロ

ですから、
「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

  Next i
 End With

End Sub

サンプルマクロの解説

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

上書き保存をせずに閉じるPowerPointマクロ

この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

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

.