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. Office関連

    [Office 2013]SkyDriveを無効(非表示)にする。

    「Office 2013 SkyDrive 無効」というキーワードで検…

  2. Office関連

    ファイルをブックに埋め込むExcelマクロ

    大分前に書いた回答用のコードが出てきたので、記事として残しておきます。…

  3. Office関連

    Office 365 APIをVBAから呼び出す(1)

    2015年4月に公開されたOffice Teamのブログ記事「Toda…

  4. Office関連

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

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

  5. Office関連

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

    Word 2007で追加された機能「コンテンツコントロール」を使うと外…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP