「excel vba powerpoint スライド選択」
といった検索キーワードでアクセスがありました。
Excel VBAからPowerPointのスライドを選択するには、どのようなコードを書けばいいのか探していた方による検索でしょう。
PowerPointのスライドを選択するサンプル
PowerPointが起動してプレゼンテーションファイルが開かれている状態で、以下のコードを実行すると、先頭スライドが選択されます。
Dim pp_app As Object
Set pp_app = GetObject(Class:="PowerPoint.Application")
Dim sld As Object
Set sld = pp_app.ActivePresentation.Slides.Item(1)
sld.Select
ExcelでVBEを表示して、このコードを標準モジュールに入力して実行すれば、起動しているPowerPointのプレゼンテーションで先頭スライドが選択されます。
このコードにはExcelのオブジェクトを操作する処理は一切入っていませんから、Word VBAでも、Access VBAでも同じように実行できます。
サンプルで行っている処理について
上記のサンプルは、プレゼンテーションファイルが開かれている状態を想定しているので、VBAのGetObject関数の引数Classに文字列「PowerPoint.Application」を指定することで、
Set pp_app = GetObject(Class:="PowerPoint.Application")
PowerPointのApplicationオブジェクトを取得しています。
Set pp_app = CreateObject("PowerPoint.Application")
pp_app.Visible = True
といったコードに変更し、プレゼンテーションファイルを開く処理を追加してください。
GetObject関数を使ってPowerPoint.Applicationオブジェクトを取得したあとは、実質的にPowerPoint VBAのコードです。
PowerPoint.Applicationオブジェクトに用意されているActivePresentationプロパティで、
アクティブなプレゼンテーションを表すPresentationオブジェクトを取得し、
Set sld = pp_app.ActivePresentation.Slides.Item(1)
Presentation.Slidesプロパティで取得したSlidesコレクションのItemメソッドを使って、
先頭スライドを表すSlideオブジェクトを取得して、
Set sld = pp_app.ActivePresentation.Slides.Item(1)
Slideオブジェクトが持つSelectメソッドで、
スライドを選択しています。
sld.Select
『いちばんやさしいPowerPoint VBAの教本』のコードとの違い
拙著『いちばんやさしいPowerPoint VBAの教本』の、Lesson 23「SlidesからSlideを取得するコードを理解しましょう」の実習ページで、
Dim sld As Slide
Set sld = ActivePresentation.Slides.Item(1)
sld.Select
といったコードを実行しています。上記の、
Dim sld As Object
Set sld = pp_app.ActivePresentation.Slides.Item(1)
sld.Select
は、拙著で紹介しているコードと実質的には同じです。
PowerPoint VBAであれば、オブジェクト変数の宣言を個別のSlide型で宣言できますが、
Dim sld As Slide
PowerPointライブラリへの参照設定が行われていないExcel VBA等の環境では、総称オブジェクト型で宣言するしかありません。
Dim sld As Object
PowerPoint VBAであれば、拙著のLesson 13「ActivePresentationから学習を始めましょう」でも解説しているActivePresentationプロパティからいきなり書き始められますが、
Set sld = ActivePresentation.Slides.Item(1)
Excel VBAなどからの場合、事前に取得したPowerPointのApplicationオブジェクトからコードを書き始めなければならない点が違うだけです。
Set sld = pp_app.ActivePresentation.Slides.Item(1)
最終更新日時:2020-11-13 14:34
- Newer:RectangleやOvalなどから文字列を取得する
- Older:モンテカルロ法で円周率の近似値を求める
Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでPowerPointのスライドを選択する