Office関連

PowerPointスライドショー終了後ファイルを閉じるVBAマクロ

Excel VBA PowerPoint スライドショー後閉じる」といったキーワードでのアクセスがありました。

ExcelからマクロでPowerPointファイルを開いてスライドショーを実行、スライドショーが終わったらそのファイルを閉じる、そんな作業を行いたいのだろうと思います。

PowerPointファイルを閉じた後もそのままマクロで処理を続行したいのか、スライドショーが終わればそのままマクロの処理も終わるのかで大分処理が変わってきますが、とりあえず、そのままマクロでの処理を続行したい場合は下記のようなコードで対応できます。

Public Sub Sample()
  Const ppSlideShowDone = 5
  
  With CreateObject("PowerPoint.Application")
    .Visible = True
    With .Presentations.Open(Filename:="C:\Test\Sample.pptx")
      With .SlideShowSettings.Run.View
        'スライドショー終了待ち
        Do Until .State = ppSlideShowDone
          DoEvents
        Loop
      End With
      .Close
    End With
    .Quit
  End With
  Debug.Print "処理が終了しました。"
End Sub

スライドショーが終わるまでループで待つ形ですね。
(スライド数が多い場合には、待ち処理にSleepを入れた方が良いです。)

下記のようにSlideShowWindowオブジェクトの数で判断することもできます。

Public Sub Sample2()
  Dim pres As Object
  
  With CreateObject("PowerPoint.Application")
    .Visible = True
    Set pres = .Presentations.Open(Filename:="C:\Test\Sample.pptx")
    pres.SlideShowSettings.Run
    'スライドショー終了待ち
    Do Until .SlideShowWindows.Count < 1
      DoEvents
    Loop
    pres.Close
    .Quit
  End With
  Debug.Print "処理が終了しました。"
End Sub

そして今度はスライドショーが終わったらそのままマクロの処理も終わる場合ですが、これは単にPowerPointファイルを開くと同時にスライドショーを実行すれば良いので、下記のようにコマンド ライン スイッチで対応することができます。

Public Sub Sample3()
  Const PptFilePath As String = "C:\Test\Sample.pptx"
  Shell "POWERPNT.exe /S """ & PptFilePath & """"
End Sub

ファイル形式をスライド ショー形式(*.ppsx、*.ppsm、*.pps)にしておけば、コマンド ライン スイッチすら不要になります。

Public Sub Sample4()
  CreateObject("Shell.Application").ShellExecute "C:\Test\Sample.ppsx"
End Sub

以上、PowerPoint以外のOfficeアプリケーションからスライドショーを実行して、スライドショーが終わったらファイルを閉じるマクロの紹介でした。

徹底的にSymbol(シンボル)フォントをチェックするWordマクロ前のページ

GUIDを作成するVBScript次のページ

関連記事

  1. Office関連

    手軽に参照設定するためのVBAアドイン

    thom氏のブログで面白い記事がありました。・VBA 参照…

  2. Office関連

    [Word]隠し文字をクイックアクセスツールバーから設定する。

    Wordで、部分的に印刷したくない文字列がある場合には「隠し文字」がよ…

  3. Office関連

    変更履歴をオンにしたままで文字列の置換を行うWordマクロ

    MSDNフォーラムに、“変更履歴をオンにした状態で文字列を置換するマク…

  4. Office関連

    Trello APIを使ってカードを投稿するVBAマクロ

    以前Fiddlerを使ってTrello APIを実行する記事を書きまし…

  5. Excel

    Excel 2016 PreviewではPower Queryが標準機能になりました。

    2015/03/31 追記 == ここから ==Power Que…

  6. Office関連

    Visual Studio Community 2015でOffice開発する。

    「Microsoft、統合開発環境「Visual Studio 201…

コメント

  • コメント (0)

  • トラックバックは利用できません。

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP