PPT VBAでプレースホルダーのサイズを取得する
動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPoint(バージョン2001 ビルド12430.20184 Microsoft Store)
「PowerPointVBAプレースホルダーのサイズ確認」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
プレースホルダーの大きさ(幅と高さ)を取得する、PowerPoint VBAのコードを探していた方による検索です。
タイトルプレースホルダーのサイズを取得するサンプル
アクティブなプレゼンテーションの先頭スライドに、タイトルプレースホルダーが存在するときに、以下のSubプロシージャを実行してください。
"PPT-2021-5-8 292-1"
幅と高さがメッセージボックスに表示されます。
拙著『いちばんやさしいPowerPoint VBAの教本の「Lesson 30 図形を表すオブジェクトのイメージをつかみましょう」以降で解説しているとおり、プレースホルダーを表すオブジェクトもShapeです。
ですから、「Lesson 34 Shapeの位置と大きさを表すプロパティについて学習しましょう」でお伝えしているWidthプロパティで幅を、Heightプロパティで高さを取得できます。
"PPT-2021-5-8 292-2"
タイトルプレースを表すShapeオブジェクトを取得するために、「Lesson 53 タイトルプレースホルダーを取得するコードを理解しましょう」で解説しているShapes コレクションのTitleプロパティを利用しています。
"PPT-2021-5-8 292-3"
「ActivePresentation.Slides(1).Shapes」の部分は、Shapesコレクションを取得するPowerPoint VBAの最も基本的なオブジェクトを取得するコードで、拙著では「Lesson 33 Shapesコレクションをオブジェクトブラウザーで確認しましょう」までで解説しています。
2つ目のプレースホルダーのサイズを取得するサンプル
タイトルプレースホルダーではない、コンテンツプレースホルダー等のサイズを取得する場合は以下のSubプロシージャが参考になるでしょう。
"PPT-2021-5-8 292-4"
アクティブなプレゼンテーションの先頭スライドに、2つ以上プレースホルダーが存在するときに、上記のSubプロシージャを実行してください。
Widhtプロパティ・Heightプロパティは先述の、タイトルプレースホルダーのサイズを取得する場合と同じです。
"PPT-2021-5-8 292-5"
ここでは2つ目のプレースホルダーを取得するために、「Lesson 50 PlaceholdersからShapeを取得するコードを理解しましょう」で解説している、PlaceholderesコレクションのItemメソッドを利用しています。
"PPT-2021-5-8 292-6"
ItemメソッドはPlaceholdersコレクションの既定メンバーですから、「.Placeholders.Item(2)」の「.Item」は省略して「.Placeholders(2)」と書くこともできます。