VBAを使用してPowerPointで図形を作成および挿入する方法は?

数日前、PowerPointスライドを作成するというかなりありふれたタスクを自動化したかったのです。PowerPointを自動化するときは、通常、スライドと図形のコレクションを使用します。スライドはかなり自明であり、図形はテキストボックス、アクションボタン、メディアオブジェクト、ラベル、画像、コールアウト、フローチャートなど、他のほとんどすべてのものを含みます。このチュートリアルでは、PowerPointにおけるVBAマクロの使用方法を紹介しますが、構文の一部は実際にはMicrosoft WordおよびExcelにも適用できます。

手順概要

  1. VBAマクロの開発を開始するための準備
  2. スライドを使ってプレゼンテーションを作成する
  3. 図形を操作する

要約すると、PowerPointでVBAマクロの開発を開始する前に、[開発]タブを有効にする必要があります。

VBAでプレゼンテーションを作成する

このチュートリアルに示すように、いくつかのスライドを使用してプレゼンテーションを自動的に作成します。

VBAで図形を操作する

まず、Alt + F11を押してVBAエディターを開きます。モジュールリストにモジュール1が含まれていることを確認してください(以下を参照)。

1. テキストボックスの追加

プレゼンテーションの最初のスライドに垂直テキストボックスを追加するためのコードは以下の通りです:

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)    
With MySlide.Shapes
    .AddTextbox(Orientation:=msoTextOrientationVertical, _
    Left:=90, Top:=200, Width:=80, _
    Height:=200).TextFrame.TextRange.Text _
    = ("This is my vertical text box")
End With
End Sub

2. テキストボックスのサイズ変更

次に、テキストボックスのサイズを変更する方法です。この場合、2番目のスライドの最初の形状のサイズを変更します:

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)
'Add your required dimensions as needed below 
With MyShape
    .Width = 200
    .Height = 35
End With
End Sub

3. テキスト効果の追加

すべてのスライドにカスタムテキスト効果を追加するためのコード:

Sub SetEffects()
Dim i As Integer
For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next
End Sub

結果は次のとおりです;-):

VBAを使用してPowerPointで図形を作成および挿入する方法は?

PowerPointのコールアウトの追加

次に、2番目のスライドにコールアウトを追加する例です:

Sub CreateCallout()
ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _
Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"
End Sub

シェイプのプロパティ設定

図形の多くの書式設定プロパティは、ShapeまたはShapeRangeオブジェクトに直接適用されません。代わりに、関連する図形属性は、図形の塗りつぶしに関連するすべてのプロパティを含むFillFormatオブジェクトや、関連するOLEオブジェクトの特有のプロパティを含むLinkFormatオブジェクトなどの二次オブジェクトの下にグループ化されます。

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

形状の整列、配置、およびグループ化

AlignメソッドやDistributeメソッドを使用して、一連の図形を相互に相対的に配置します。また、GroupメソッドやRegroupメソッドを使用して、図形のセットから一つのグループ化された図形を形成します。

(16) コメント

  1. 林 太郎 -

    時間はかかっても、試行錯誤するのが楽しい!この方法は活用できそう。記事を参考にします。

  2. スミレ -

    こういう具体的なサンプルがあるととてもわかりやすいですね。実際にコードを試したいと思います

  3. あかり -

    皆さん、VBAの基本的な部分から勉強しないといけないですけど、こういう記事は本当に助かる!感謝しかないです。

  4. 佐藤 健太 -

    この方法はすごく役に立つ!VBAを使ってPowerPointの図形を簡単に作れるなんて夢のようです。ぜひ試してみたいです

  5. さやか -

    正直なところ57行以上のコードは初心者には難しいですが、段階を追って解説してもらえると嬉しいです!

  6. まゆみ -

    もう少し具体的な例があると、初心者にはありがたいと思います。私もVBAは勉強中なので、助けてください

  7. しおり -

    正直、PowerPointだけじゃなくて、Office全体でVBAを使う楽しさをもっと知りたいなぁ。これからどんどん試していこう!

  8. ケンジ -

    リング動かしただけで面白い図形ができるなんて、VBAって奥が深いんですね。これからも色々と挑戦してみたいです

  9. まこと名古屋 -

    この方法を使えば、他の図形も作れるのかな?ぜひ他のサンプルも見たいです、楽しみ

  10. たかひろ -

    タイトルを見て興味持った!PowerPointの図形作成がこんなに楽になるなら、もっと勉強したい。

  11. あらい -

    VBAって難しそうだったけど、こんな風に使うのか…。分かりやすい説明に感謝です、助かりました

  12. りょうた -

    この投稿見つけて大興奮!ずっとやりたかったことがここにあるなんて、本当にありがたいです。早速試してみます

  13. ユウタ -

    図形を作成することで効率的にプレゼンテーションができる。このやり方を使ったら、資料作成が超楽になりそう

  14. トシオ -

    PowerPointのためのVBA、いいね!簡単な図形だけじゃなく、カスタマイズする面白さもあるじゃないですか!

  15. ひな -

    なんでこんなに素晴らしい情報が無料なんだろう?本当に驚き!これを友達にもシェアしなくちゃ!

  16. リョウコ -

    いいに違いない!VBAを使ったことがないけど、挑戦してみようと思います。この手法は絶対に役立つはず

コメントを残す

CRMを購入する前に、Excelでシンプルなリードトラッキングシステムを作成する方法

CRMを購入する前に、Excelでシンプルなリードトラッキングシステムを作成する方法

CRMソフトウェアに投資する前に、表、ドロップダウンリスト、フォローアップ日、フィルター、条件付き書式設定、シンプルなピボットテーブルダッシュボードを備えた実用的なExcelリードトラッカーを作成しましょう。

家庭保育用のシンプルな印刷可能な保育出席記録シート:記録すべき内容とその理由

家庭保育用のシンプルな印刷可能な保育出席記録シート:記録すべき内容とその理由

このシンプルな印刷可能な保育出席シートは、家庭での保育の際に、到着、出発、欠席、署名、および必要な記録を記録するために使用できます。

Excel用シンプル在庫棚卸シートテンプレート:小売店向けレイアウトで迅速な照合が可能

Excel用シンプル在庫棚卸シートテンプレート:小売店向けレイアウトで迅速な照合が可能

SKU、場所、計数数量、差異、再計数、印刷対応機能を備えた、小売店向けのシンプルなExcel在庫棚卸シートを作成します。

地域ビジネス向け印刷可能な1ページマーケティング戦略テンプレート

地域ビジネス向け印刷可能な1ページマーケティング戦略テンプレート

この印刷可能な1ページ構成のマーケティング戦略テンプレートを使用して、地域の顧客層、提供する商品・サービス、チャネルミックス、予算、施策、測定可能な目標を設定しましょう。

従業員の勤務シフト表テンプレート(Excel用、自動時間計算機能付き)を無料でダウンロードできます。

従業員の勤務シフト表テンプレート(Excel用、自動時間計算機能付き)を無料でダウンロードできます。

開始/終了時刻、休憩時間の控除、夜勤処理、週ごとの合計、簡単な勤務時間計算機能などを備えた、無料の従業員シフトスケジュールをExcelで作成できます。

米国の中小サービス業向けおすすめ無料請求書作成アプリ(2026年版)

米国の中小サービス業向けおすすめ無料請求書作成アプリ(2026年版)

Zoho Invoice、Square、Wave、PayPal、Invoice Ninjaなど、2026年に米国サービス業向けに提供される最高の無料請求書作成アプリを比較してみましょう。

小規模チーム向けのシンプルな隔週給与トラッカーExcelテンプレート:初心者にも使いやすい設定

小規模チーム向けのシンプルな隔週給与トラッカーExcelテンプレート:初心者にも使いやすい設定

小規模チーム向けに、Excelでシンプルな隔週給与トラッカーを作成します。明確なシート、数式、チェック機能、そして安全な給与照合のための実用的な制限事項を盛り込みます。

Salesforceの連絡先をクリーンなExcel形式にエクスポートする方法

Salesforceの連絡先をクリーンなExcel形式にエクスポートする方法

Salesforceの連絡先をクリーンなExcelファイルにエクスポートする方法、IDとテキストフィールドを保持する方法、重複を安全に削除する方法、そしてよくあるCSVファイルのミスを回避する方法を学びましょう。

小規模請負業者向け、印刷可能なExcel形式の建設工事見積書テンプレート

小規模請負業者向け、印刷可能なExcel形式の建設工事見積書テンプレート

実用的なコストカテゴリ、数式、マークアップフィールド、印刷設定、および請負業者がすぐに使えるチェックリストを備えた、印刷可能な建設工事見積書をExcelで作成します。

Word用 印刷可能なイベント企画チェックリスト&予算テンプレート

Word用 印刷可能なイベント企画チェックリスト&予算テンプレート

Word用の印刷可能なイベント企画チェックリストと予算テンプレートを活用し、担当者、期限、コスト、ベンダー、イベント当日の準備状況を明確な品質チェック項目で管理しましょう。