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

    マクロに割り当てたショートカットキーをCSVファイルとして出力するWordマクロ

    Word MVPの新田さんが書かれた以下の記事を見て思いついたマクロで…

  2. Office関連

    各ページの各行の行頭と行末に文字列を挿入するWordマクロ

    Word文書の各ページに10行程度の文章があり、各行の行頭と行末に文字…

  3. Office関連

    Officeアプリケーションの「最近使用したファイル」を削除するVBScript

    WordやExcel等のOfficeアプリケーションでは、下記サイトに…

  4. Office関連

    [Outlook]仕分けルールでスクリプト(マクロ)を実行する。

    Msdn フォーラムにあった質問関連でメモを残しておきます。…

  5. Office関連

    Acrobatを使ってPDFファイルを結合するVBAマクロ

    前回の記事では、iTextSharpを使ってPDFファイルを結合するP…

  6. アイコン一覧

    Office 2013 アイコン一覧(I)

    ・Office 2013 アイコン一覧 NUM…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP