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 365アイコン(imageMso)一覧(V)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  2. Office関連

    [Wordマクロ]PrintOutメソッド実行時に「型が一致しません」との実行時エラーが発生する。

    Wordマクロで文書を印刷するときはPrintOutメソッドをよく使い…

  3. Office アドイン

    [Office用アプリ]Google ドライブでアプリを公開する方法

    今回は先日登壇した第一回 Apps for Office 勉強会の中で…

  4. Office関連

    目次を更新するWordマクロ

    文書の目次を更新するにはTableOfContentsオブジェクトのU…

  5. Office関連

    コマンドマクロ一覧(Word 2013 Customer Preview)

    Word 2013 CP版に組み込まれている「コマンドマクロ」のコマン…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP