• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで既存のパワポのファイルを開くには?)

VBAで既存のパワポのファイルを開く方法

このQ&Aのポイント
  • VBAを使用して既存のパワーポイントファイルを開く方法について教えてください。
  • 現在のプロジェクトのパスにあるサンプル.pptという名前のパワーポイントファイルをVBAで開く方法を教えてください。
  • 参照設定をした後、PowerPoint.Applicationオブジェクトを作成して、MyFileNameにファイルのパスを指定し、App.VisibleをTrueに設定してパワーポイントのアプリケーションを開くことができますが、ファイルが開かれません。ファイルを開く方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

ExcelファイルやAccessファイルと パワーポイントのファイルが同じフォルダにあるとして Accessなら、CurrentProject.Path Excelなら、ThisWorkbook.Path でフォルダ名までが得られますので、それに \ を付け足して CurrentProject.Path & "\" & "サンプル.ppt" パワーポイントに参照設定を行っているのですから CreateObjectせずに Sub PPTopen() Dim pp As New PowerPoint.Application pp.Presentations.Open ThisWorkbook.path & "\" & "サンプル.ppt" 以下省略 で。 開くだけで、その後はVBAでパワーポイントを操作しないのであれば Shell ("explorer.exe" & Chr(32) & ThisWorkbook.path & "\" & "サンプル.ppt" ↑読み取り専用で開かれました。当方 Office2010 の場合 ↓PPTファイルをダブルクリックで開いた状態 CreateObject("shell.application").shellexecute ThisWorkbook.path & "\" & "サンプル.ppt" とかでも。 ちなみにパワーポイントは数年来使ったことはありませんので これ以上のことはご勘弁ください。

asfdjhw34
質問者

お礼

参照設定を行ってる場合はCreateObjectは不要なのですか。 Sub test() Dim MyFileName As String MyFileName = CurrentProject.Path & "¥" & "サンプル.ppt" Dim App As New PowerPoint.Application App.Presentations.Open MyFileName App.Visible = True Set App = Nothing End Sub *********************************************** をすると、 実行時エラー -2147188160 「Presentations(不明なメンバー) : 無効な要求です。 PowerPoint のフレーム ウィンドウは存在しません。」 になってしまいました。 しかし、 Sub test2() CreateObject("shell.application").shellexecute CurrentProject.Path & "\" & "サンプル.ppt" End Sub で、無事開くことが出来ました。ご回答ありがとうございました。

その他の回答 (2)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

CurrentProject.Path が返すパスに末尾に \ がありましたっけ? あってもなくても対応できるようにして、再実行するとどうなりますか? MyFileName = CurrentProject.Path & ".\サンプル.ppt" C:\test が返されるなら、上記で C:\test.\サンプル.ppt → C:\test\サンプル.ppt と同じ C:\test\ が返されても、上記で C:\test\.\サンプル.ppt → C:\test\サンプル.ppt と同じ

asfdjhw34
質問者

お礼

パスセパレータも抜けてましたね。 ありがとうございました。

  • masatsan
  • ベストアンサー率15% (179/1159)
回答No.1

直接の回答になりませんが、そのコードでは当然空でしょうね。MyFileName がappと全く関連内ですから。 たぶん app.open のようなメソッドがあるはずです。

asfdjhw34
質問者

お礼

仰る通りなんです。 それはわかってるんですよ・・・ その部分が自分でわからなくて・・・

関連するQ&A