忍者ブログ

Microsoft office 激安情報を公開するブログです

Microsoft offices2019 日本語 ウンロード版 参考税別価格:¥4,850(税込)の激安情報を公開するブログです

PPT 非表示スライドを一括削除するPowerPointマクロ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

PPT 非表示スライドを一括削除するPowerPointマクロ

PPT 非表示スライドを一括削除するPowerPointマクロ
対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013
非表示スライドを一括削除するPowerPointマクロ
"PPT-2021-4-30 190-1" 
「powerpoint 非表示スライドを削除 vba」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
非表示に設定したスライドを削除する、PowerPointのマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
非表示スライドを一括削除するマクロ
以下のようなマクロで、アクティブなプレゼンテーションファイルの非表示スライドを、一気に削除することができます。
Sub 非表示スライドを一括削除する()
 Dim msg As String
 Dim i As Long
 msg = "非表示スライドをすべて削除していいですか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub


 With ActivePresentation
 For i = .Slides.Count To 1 Step -1
  With .Slides(i)
   If .SlideShowTransition.Hidden = msoTrue Then
    .Delete
   End If
  End With ' .Slides(i)
 Next i
 End With ' ActivePresentation
End Sub
上記のマクロを実行すると「非表示スライドをすべて削除していいですか?」という確認メッセージが表示され、[いいえ]ボタンが押されたときには、マクロを終了します。
 msg = "非表示スライドをすべて削除していいですか?"
 If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub
[はい]ボタンをクリックすると、非表示になっているスライドの削除が開始されます。
アクティブなプレゼンテーションの全スライドに対して、後からループを回して、
 With ActivePresentation
 For i = .Slides.Count To 1 Step -1
非表示に設定されているスライドならば、
  With .Slides(i)
   If .SlideShowTransition.Hidden = msoTrue Then
削除しています。
    .Delete
今回のような削除を行うマクロでは、削除した瞬間にオブジェクトの数が変更になってしまうため前からループを回すと面倒です。ご紹介したマクロのように、後からループを回してやればシンプルなコードで済ませられます。
PowerPointでマクロを作るにはオブジェクトブラウザの利用が必須
プログラミングの経験のある方、Excelマクロの経験のある方なら、ロジック自体はまったく難しくないはずです。
問題は、SlideShowTransition.Hiddenプロパティで、スライドの表示・非表示がわかるということを、どうやって知ればいいのか、でしょう。
2003までのPowerPointならば、マクロ記録でオブジェクト式についてのヒントを得ることも可能でした。
しかし、PowerPointでは、2007で中途半端なマクロ記録の状態になり、2010からは完全にマクロ記録機能がなくなっています。
最近のPowerPointで、コピペではなく自分でマクロを作ろうとする場合、オブジェクトブラウザの利用が必須だと感じています。
どうやってSlideShowTransition.Hiddenプロパティをみつけるのか
参考までに、私がSlideShowTransition.Hiddenプロパティをどうやって探したのかを記述しておきます。
まず「hidden」という単語をオブジェクトブラウザで検索しました。
非表示であることを示すプロパティには、おそらく「hidden」という単語が含まれているだろう、という推測からです。この推測ができるようには、ある程度のプログラミングの経験が必要になります。
「hidden」で検索すると下図のように、SlideShowTransitionオブジェクトにHiddenプロパティが見つかります。
非表示スライドを一括削除するPowerPointマクロ
"PPT-2021-4-30 190-2" 
ヘルプを調べると、確かにこのSlideShowTransition.Hiddenプロパティで、スライドが非表示であるかどうかを判別できることがわかります。
次は、このHiddenプロパティを持っている、SlideShowTransitionオブジェクトを、どうやって取得するかです。
オブジェクトブラウザで「SlideShowTransition」を検索すると、いくつかのオブジェクトにSlideShowTransitionプロパティが存在していることがわかります。
非表示スライドを一括削除するPowerPointマクロ
"PPT-2021-4-30 190-3" 
この中から、今回のマクロではSlideオブジェクトのSlideShowTransitionプロパティを利用するのが簡単そうという判断をして、ご紹介したようなマクロにしました。この判断ができるようになるにはPowerPointマクロの経験が、ある程度必要になります。
どうやってその経験値を上げるかですが、結局は基礎知識を得たあとに、日々トレーニングするしかないと考えています。
オブジェクト式を見たときに、ヘルプで調べたり、そのオブジェクト式がどんなオブジェクトを取得しているのかを推測する癖をつけていくと、少しずつ経験値が上がり、判断できるようになっていくはずです。
PR

コメント

プロフィール

HN:
office
性別:
非公開

P R

忍者画像RSS