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

    右クリックメニューを非表示にするExcelマクロ

    Answersに図形を右クリックしたときのメニューをマクロで非表示にし…

  2. Office関連

    ExcelとPowerPointに自動保存機能が追加されました。

    Excel 2016を使っていて、ふと気が付いたのが画面左上にある「自…

  3. Office関連

    オフライン版のOffice 2016 VBAリファレンスが公開されました。

    「ヘルプファイル版のOffice 2013開発者用リファレンスが公開さ…

  4. Office関連

    PowerPoint 2013でYouTubeの動画を挿入する。

    2014/5/23 追記:いつの間にか「ビデオの挿入ダイアログ」が…

  5. Office アドイン

    作業ウィンドウのアプリをWord 2013にも対応させる。

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

  6. Office関連

    「いちばんやさしいPowerPoint VBAの教本」レビュー

    「インストラクターのネタ帳」で有名な伊藤さんが執筆された書籍第二弾、「…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP