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

    [Mayhem]PowerPointマクロにショートカットキーを割り当てる。

    2012/4/20 追記:クイックアクセスツールバーのメニューを利用す…

  2. Office アドイン

    PowerPoint用のOffice用アプリ

    当ブログでも散々紹介しているOffice用アプリ(apps for O…

  3. Office アドイン

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

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

  4. Office関連

    [Office]「タッチ」タブの正体!?

    最近下記のようにOfficeのリボンにある「タッチ」タブについての質問…

  5. Office関連

    「Excel VBAでIEを思いのままに操作できるプログラミング術」の見本誌をいただきました。

    「VBAアクションゲーム?Excel(エクセル)で動かそう!」で有名な…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP