VBAマクロを使用してPowerPointプレゼンテーションにスライドをコピーして追加するにはどうすればよいですか?

最終更新日:2020年6月

適用対象:Office2019以前。Windowsのみ。

読者からの質問は次のとおりです。

経営陣への四半期報告書のプレゼンテーションの一環として、他のプレゼンテーションからいくつかの一般的な情報スライドをコピーする必要があることがよくあります。大したことではありませんが、この演習を自動化できることは大幅な節約になります。それを達成するためのVBAマクロの助けはありがたいです!

先ほど述べたように、Visual Basic for Applicationsを使用して、PowerPointでスライドのコピーと貼り付けを自動化できます。毎月複数のプレゼンテーションを作成する必要がある場合、このスライドのコピー/インポートの自動化は大幅な時間の節約になる可能性があります。

スライドを追加するためのPowerPointVBA

この簡単な演習を始めましょう。

まず、開発タブが有効になっていて表示されていることを確認します。これを行う方法は次のとおりです

マクロ対応のプレゼンテーション(ファイルタイプは.pptm)を既に作成しており、ソースプレゼンテーション(これをsource.pptmと呼びます)と同じディレクトリに配置していると仮定します。VBAを使用してPowerPointプレゼンテーションを作成する方法は次のとおりです。

まず、そのプレゼンテーションのバックアップを取りましょう(単純なコピーと保存)。

次に、次のマクロを宛先プレゼンテーションの新しいVBAモジュールに挿入します。これを行う方法の詳細は、PowerPointVBAチュートリアルに記載されています。

スライドを自動的にコピーして貼り付けるために必要なVBAコードは次のとおりです。

私が行ったいくつかの仮定:

  • ソースプレゼンテーションの名前はsource.pptmです。
  •  ソースプレゼンテーションからスライド2〜4を貼り付けます
  • スライド5からコピーしたスライドを配置します。

Sub InsertFromOtherPres()

' This short VBA macro copies slides from one presentation and inserts them into another

ActivePresentation.Slides.InsertFromFile FileName:="source.pptm", Index:=1, SlideStart:=2, 
SlideEnd:=4

End Sub

もちろん、要件に合うように、コード内のスライド番号のインデックスを自由に変更してください。

複数のプレゼンテーションをループさせて、それぞれの特定のスライドを管理レポートに挿入することができます。

スライドを複製するためのPowerPointVBA

スライドを別のプレゼンテーションにコピーする代わりに、プレゼンテーション内の1つ以上のスライドのクローンを作成することをお勧めします。

Sub CopySlides()

' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly

ActivePresentation.Slides(3).Duplicate

End Sub

これらは、PowerPoint自動化の簡単な例のほんの一例です。特定の質問をお探しの読者は、お問い合わせページからお気軽にお問い合わせください。

お役に立てば幸いです🙂

スライドのコピー時に書式を保持する

前の例の問題は、元のプレゼンテーションのテーマの書式設定がコピーされないことでした。2 つのシートの書式が異なると仮定すると、次のようになります。

例1

 

Sub main()

Dim objPresentation As Presentation

Dim i As Integer

'open the target presentation

Set objPresentation = Presentations.Open("C:\2.pptx")

For i = 1 To objPresentation.Slides.Count

    objPresentation.Slides.Item(i).Copy

    Presentations.Item(1).Slides.Paste

Next i

objPresentation.Close

End Sub

コードを実行する前に
これは、コピーしたいスライドを含むプレゼンテーションです: 結果: この問題を解決するには、以下のコードを使用できます。
コピーするスライド

結果

 

Sub Example2()

Dim objPresentation As Presentation

Dim i As Integer

'open the target presentation

Set objPresentation = Presentations.Open("C:\2.pptx")

For i = 1 To objPresentation.Slides.Count

    objPresentation.Slides.Item(i).Copy

    Presentations.Item(1).Slides.Paste

    Presentations.Item(1).Slides.Item(Presentations.Item(1).Slides.Count).Design = _

        objPresentation.Slides.Item(i).Design

Next i

objPresentation.Close

End Sub

スライドをコピーする以外に、上記のコードはデザインをコピーします。これを手動で行う場合は、スライドマスターを新しいプレゼンテーションにコピーします。VBA を使用してスライドマスターをコピーすることはできませんが、代わりにスライドのデザイン プロパティを設定できます。


ジンジャー 2.7.53.0

ジンジャー 2.7.53.0

Ginger は無料のスペル チェッカーと文法チェッカーです。

ブロック

ブロック

Blocks は、小学校 3 年生向けの探知能力と視覚能力を訓練するための知的なゲームであり、教師による IT 指導支援プログラムに組み込まれています。

マスウェイ

マスウェイ

Mathway は、デバイスに内蔵されている電卓よりも複雑なツールを必要とする数学の問題をすべて解決できる、非常に便利なアプリです。

アドビプレゼンター

アドビプレゼンター

Adobe Presenter は、Adobe Systems によってリリースされた e ラーニング ソフトウェアで、Microsoft Windows プラットフォーム上で Microsoft PowerPoint プラグインとして利用できます。

オオハシ 2.3.0

オオハシ 2.3.0

Toucan は教育テクノロジー プラットフォームです。日常的に使用される一般的な Web サイトを閲覧しながら、新しい言語を学習できます。

ENetViet 24.2

ENetViet 24.2

eNetViet は、保護者と子供が勉強している学校を結び付け、子供の現在の学習状況を明確に理解できるようにするアプリケーションです。

デュオリンゴ

デュオリンゴ

Duolingo - 無料で言語を学ぶ、または単に Duolingo は、さまざまな言語を学び、練習できる教育プログラムです。

ラピッドタイピング

ラピッドタイピング

RapidTyping は、タイピング速度を向上させ、スペル ミスを減らすのに役立つ、便利で使いやすいキーボード トレーニング ツールです。RapidTyping では、さまざまなレベルに合わせてレッスンが構成されており、タイピングの方法や既存のスキルを向上させる方法を学びます。

MathType 7.4.10.53

MathType 7.4.10.53

MathType は、開発者 Design Science (Dessci) が提供するインタラクティブな方程式ソフトウェアで、ワード プロセッシング、プレゼンテーション、e ラーニングなどの数学的記法を作成して注釈を付けることができます。このエディタは、TeX、LaTeX、および MathML ドキュメントの作成にも使用されます。

文法的に

文法的に

Grammarly の AI を活用したアプリは、人々のコミュニケーションをより効果的にするのに役立ちます。何百万ものユーザーが毎日 Grammarly を利用して、メッセージ、ドキュメント、ソーシャル メディアの投稿をより明確に、エラーなく、よりプロフェッショナルなものにしています。