excel-vba
VBAによるPowerPointの統合
サーチ…
備考
このセクションでは、VBAを使用してPowerPointと対話するさまざまな方法を示します。スライド上のデータの表示からチャートの作成まで、PowerPointはExcelと組み合わせて使用すると非常に強力なツールです。したがって、このセクションでは、VBAを使用してこの相互作用を自動化するさまざまな方法を説明します。
基本:VBAからPowerPointを起動する
変更可能なパラメータと目的の機能に応じて追加できるバリエーションが多数ありますが、この例ではPowerPointを起動するための基本的なフレームワークを示しています。
注:このコードでは、PowerPointの参照がアクティブなVBAプロジェクトに追加されている必要があります。参照を有効にする方法については、 References Documentationエントリを参照してください。
まず、アプリケーション、プレゼンテーション、およびスライドオブジェクトの変数を定義します。これはレイトバインドで行うことができますが、適用可能な場合には早期バインディングを使用することが常にベストです。
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
次に、PowerPointアプリケーションの新しいインスタンスを開くか作成します。ここでOn Error Resume Next
コールは、PowerPointがまだ開かれていない場合にGetObject
によってスローされるエラーを回避するために使用されます。詳細な説明については、ベストプラクティストピックのエラー処理の例を参照してください。
'Open PPT if not running, otherwise select active instance
On Error Resume Next
Set PPApp = GetObject(, "PowerPoint.Application")
On Error GoTo ErrHandler
If PPApp Is Nothing Then
'Open PowerPoint
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Visible = True
End If
アプリケーションが起動されると、新しいプレゼンテーションとそれに続くスライドが使用のために生成されます。
'Generate new Presentation and slide for graphic creation
Set PPPres = PPApp.Presentations.Add
Set PPSlide = PPPres.Slides.Add(1, ppLayoutBlank)
'Here, the slide type is set to the 4:3 shape with slide numbers enabled and the window
'maximized on the screen. These properties can, of course, be altered as needed
PPApp.ActiveWindow.ViewType = ppViewSlide
PPPres.PageSetup.SlideOrientation = msoOrientationHorizontal
PPPres.PageSetup.SlideSize = ppSlideSizeOnScreen
PPPres.SlideMaster.HeadersFooters.SlideNumber.Visible = msoTrue
PPApp.ActiveWindow.WindowState = ppWindowMaximized
このコードが完了すると、空白のスライドを含む新しいPowerPointウィンドウが開きます。オブジェクト変数を使用することで、必要に応じて図形、テキスト、グラフィックス、およびExcelの範囲を追加できます