Office関連

アクティブなスライドを取得するPowerPointマクロ

PowerPointのマクロを触っていて、「ActiveSlide」のようなアクティブなスライドを取得するプロパティがないようだったので関数を自作しました。

Option Explicit

Public Sub Sample()
  Dim p As PowerPoint.Presentation
  Dim s As PowerPoint.Slide
  
  For Each p In Application.Presentations
    Set s = GetActiveSlide(p)
    If s Is Nothing Then
      MsgBox "アクティブなスライドを取得できません。", vbCritical + vbSystemModal
    Else
      MsgBox "インデックス番号:" & s.SlideIndex & vbCrLf & "オブジェクト数:" & s.Shapes.Count, vbInformation + vbSystemModal
    End If
  Next
End Sub

Public Function GetActiveSlide(ByVal p As Presentation) As Slide
  Dim ret As Slide
  
  Set ret = Nothing '初期化
  On Error Resume Next
  Set ret = p.Slides.FindBySlideID(p.Windows(1).Selection.SlideRange.SlideID)
  On Error GoTo 0
  Set GetActiveSlide = ret
End Function

関数の仕組みは単純で、選択しているSlideRangeオブジェクトのSlideIDプロパティを、SlidesオブジェクトのFindBySlideIDメソッドに渡すことでSlideオブジェクトを取得しています。

コンテンツコントロールに外部XMLのデータをマップするWordマクロ前のページ

“元に戻す”履歴に文字列をセットするPowerPointマクロ次のページ

関連記事

  1. Excel

    指定したAccessファイルで「データベースの最適化/修復」を実行するVBAマクロ

    大分前の記事になりますが、開いているデータベースを最適化するマクロのコ…

  2. Office関連

    Excel 2013版URLエンコードマクロ

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  3. Office関連

    Office XP Developer Toolsでリボン対応のCOMアドインを作成する。

    「Visual Basic 6でリボン対応のアドインを作成する」ではV…

  4. Office関連

    オデッセイ コミュニケーションズ主催のExcel VBA入門セミナーに参加しました。

    今月19日に開催されたオデッセイ コミュニケーションズさん主催の「Ex…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP