- ベストアンサー
VBAで既存のパワポのファイルを開く方法
- VBAを使用して既存のパワーポイントファイルを開く方法について教えてください。
- 現在のプロジェクトのパスにあるサンプル.pptという名前のパワーポイントファイルをVBAで開く方法を教えてください。
- 参照設定をした後、PowerPoint.Applicationオブジェクトを作成して、MyFileNameにファイルのパスを指定し、App.VisibleをTrueに設定してパワーポイントのアプリケーションを開くことができますが、ファイルが開かれません。ファイルを開く方法を教えてください。
- みんなの回答 (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" とかでも。 ちなみにパワーポイントは数年来使ったことはありませんので これ以上のことはご勘弁ください。
その他の回答 (2)
- bin-chan
- ベストアンサー率33% (1403/4213)
CurrentProject.Path が返すパスに末尾に \ がありましたっけ? あってもなくても対応できるようにして、再実行するとどうなりますか? MyFileName = CurrentProject.Path & ".\サンプル.ppt" C:\test が返されるなら、上記で C:\test.\サンプル.ppt → C:\test\サンプル.ppt と同じ C:\test\ が返されても、上記で C:\test\.\サンプル.ppt → C:\test\サンプル.ppt と同じ
お礼
パスセパレータも抜けてましたね。 ありがとうございました。
- masatsan
- ベストアンサー率15% (179/1159)
直接の回答になりませんが、そのコードでは当然空でしょうね。MyFileName がappと全く関連内ですから。 たぶん app.open のようなメソッドがあるはずです。
お礼
仰る通りなんです。 それはわかってるんですよ・・・ その部分が自分でわからなくて・・・
お礼
参照設定を行ってる場合は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 で、無事開くことが出来ました。ご回答ありがとうございました。