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アプリケーションからスライドショーを実行して、スライドショーが終わったらファイルを閉じるマクロの紹介でした。

関連記事

  1. Office関連

    フッターにページ番号と総ページ数を挿入するWordマクロ

    以前書いた、フッターに「ページ番号 / 総ページ数」を挿入するWord…

  2. Office関連

    Internet Explorer用OneNoteアドオンを利用して指定したWebページをOneNo…

    「Evernote Webクリッパーで指定したWebページをEvern…

  3. Office アドイン

    [Office用アプリ]アプリ開発コンテスト・受賞者発表

    以前書いた記事でお知らせしていた「Apps for Office アプ…

  4. Office関連

    [リボン・カスタマイズ]dynamicMenu要素から任意のマクロを実行する。

    HPのお問い合わせフォームから下記の質問がありました。「メニュ…

  5. Office関連

    Excelで地理データや株価情報を取得する方法

    下記記事にある、今年3月に追加された「データの種類」機能を使って、Ex…

  6. アイコン一覧

    Office 2013 アイコン一覧(W)

    ・Office 2013 アイコン一覧 NUM…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP