プロが教える店舗&オフィスのセキュリティ対策術

アクセスやエクセルからVBAで既存のパワポのファイルを開くには?

参照設定をして、
Sub test()
Dim App As PowerPoint.Application
Dim MyFileName As String

Set App = CreateObject("PowerPoint.Application")

MyFileName = CurrentProject.Path & "サンプル.ppt"
App.Visible = True

Set App = Nothing
End Sub

を実行すると、パワポの空のアプリケーション開きますが肝心のファイルが開きません。

開く方法を教えてください。

A 回答 (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"
とかでも。

ちなみにパワーポイントは数年来使ったことはありませんので
これ以上のことはご勘弁ください。
    • good
    • 0
この回答へのお礼

参照設定を行ってる場合は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

で、無事開くことが出来ました。ご回答ありがとうございました。

お礼日時:2012/10/24 22:35

CurrentProject.Path が返すパスに末尾に \ がありましたっけ?




あってもなくても対応できるようにして、再実行するとどうなりますか?

MyFileName = CurrentProject.Path & ".\サンプル.ppt"


C:\test が返されるなら、上記で C:\test.\サンプル.ppt → C:\test\サンプル.ppt と同じ
C:\test\ が返されても、上記で C:\test\.\サンプル.ppt → C:\test\サンプル.ppt と同じ
    • good
    • 1
この回答へのお礼

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

お礼日時:2012/10/22 23:51

直接の回答になりませんが、そのコードでは当然空でしょうね。

MyFileName がappと全く関連内ですから。 たぶん app.open のようなメソッドがあるはずです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/10/22 23:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A