「powerpoint マクロ フッターを削除」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
フッターを削除するPowerPointマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
PowerPointでスライド上のフッターを削除するには、
[ヘッダーとフッター]ダイアログ-[スライド]タブの[フッター]チェックボックスをOffにしてから[すべてに適用]ボタンを押す、
という操作を行います。
複数のプレゼンテーションファイルからフッターを削除したいときに、この操作を繰り返し行うのが面倒でマクロで処理したいという気持ちになるのは、とても納得できます。
VBA側から見ると、プレゼンテーションファイル上のフッターを表すHeaderFooterオブジェクトを非表示にすることで、フッターを削除することができます。
アクティブプレゼンテーションのフッターを非表示にするサンプルマクロ
以下のようなマクロで、アクティブなプレゼンテーションファイルのフッターを非表示にできます。
Dim sld As Slide
For Each sld In ActivePresentation.Slides
sld.HeadersFooters.Footer.Visible = msoFalse
Next sld
ActivePresentation.SlideMaster _
.HeadersFooters.Footer.Visible = msoFalse
このマクロで利用しているオブジェクトの階層構造を図にすると下図のようなイメージで、
行っている処理は以下のとおりです。
アクティブなプレゼンテーションファイルの全スライドに対してループを開始します。
For Each sld In ActivePresentation.Slides
ActivePresentationプロパティでアクティブなプレゼンテーションファイルを表すPresentationオブジェクトを取得して、PresentationオブジェクトのSlidesプロパティで全スライドを表すSlidesコレクションオブジェクトを取得しています。
全スライドに対するループの中で、個々のスライドのフッターの表示を非表示にしています。
sld.HeadersFooters.Footer.Visible = msoFalse
SlideオブジェクトのHeadersFootersプロパティで、HeadersFootersコレクションオブジェクトを取得して、HeadersFootersコレクションオブジェクトのFooterプロパティで、フッターを表すHeaderFooterオブジェクトを取得して、フッターを表すHeaderFooterオブジェクトのVisibleプロパティをmsoFalseに設定することでフッターを非表示にしています。
HeadersFootersコレクションオブジェクトのFooterプロパティで、
フッターを表すHeaderFooterオブジェクトを取得できるところが、
オブジェクト式的には珍しいところです。
各スライドのフッターを非表示にしたあとで、スライドマスターのフッターも非表示にしています。
ActivePresentation.SlideMaster _
.HeadersFooters.Footer.Visible = msoFalse
PresentationオブジェクトのSlideMasterプロパティで取得できるのが、
Masterオブジェクトである点も、
VBAのオブジェクト式として珍しい部分です。
開いている全プレゼンテーションのフッターを非表示にするサンプルマクロ
以下のようなマクロで、開いているすべてのプレゼンテーションファイルからフッターを削除できます。
Dim prs As Presentation
Dim sld As Slide
For Each prs In Presentations
For Each sld In prs.Slides
sld.HeadersFooters.Footer.Visible = msoFalse
Next sld
prs.SlideMaster _
.HeadersFooters.Footer.Visible = msoFalse
Next prs
End Sub先のアクティブなプレゼンテーションファイルのフッターを非表示にするマクロと同じ処理を、開いているすべてのプレゼンテーションファイルに対して行っています。
このマクロで利用しているオブジェクトの階層構造を図にすると下図のようなイメージです。
先にご紹介した、アクティブなプレゼンテーションファイルのフッターを非表示にするマクロで利用したオブジェクトの階層に、開いているすべてのプレゼンテーションファイルを表すPresentationsコレクションオブジェクトが入っていることで、一階層深くなったわけです。
Presentationsプロパティで、開いている全プレゼンテーションファイルを表すPresentationsコレクションオブジェクトを取得して、全Presentationオブジェクトに対してループを回して、
For Each prs In Presentations
先と同じく、全スライドのフッターを非表示にして、
For Each sld In prs.Slides
sld.HeadersFooters.Footer.Visible = msoFalse
Next sld
マスターのフッターを非表示にしています。
prs.SlideMaster _
.HeadersFooters.Footer.Visible = msoFalse
- Newer:4/19(日)Excelマクロ入門講座を開催しました(女性4 男性3)
- Older:Splitで返される配列の要素数
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » マスター » フッターを削除(非表示に)するPowerPointマクロ