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

    Office 365 unified APIをVBAから呼び出す

    前回の記事で、VBAからOffice 365 APIを呼び出す手順につ…

  2. Office関連

    1MBのWordファイルって何文字くらい?

    ZIP圧縮されたOOXML形式のWordファイルって1MBだと何文字分…

  3. Office関連

    テスト用の文字列を挿入するWordマクロ

    文字列操作を行うマクロを書いているとき、テスト用に「あいうえおかきくけ…

  4. Office関連

    64ビット版OfficeでURLエンコード処理ができない?

    2011/12/28 追記:関連記事として「文字コードを指定してU…

  5. Office関連

    Wordの自動実行マクロ

    たまたま使用する機会があったのでメモ書き程度に情報を残しておきます。…

  6. アイコン一覧

    Office 2013 アイコン一覧(V)

    ・Office 2013 アイコン一覧 NUM…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP