解決済み

VBAで既存のパワポのファイルを開くには?

  • 困ってます
  • 質問No.7756449
  • 閲覧数5809
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 100% (39/39)

アクセスやエクセルから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

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

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

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

  • 回答No.3

ベストアンサー率 70% (1019/1451)

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

お礼率 100% (39/39)

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

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 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 と同じ
お礼コメント
asfdjhw34

お礼率 100% (39/39)

パスセパレータも抜けてましたね。
ありがとうございました。
投稿日時 - 2012-10-22 23:51:37
  • 回答No.1

ベストアンサー率 15% (176/1135)

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

お礼率 100% (39/39)

仰る通りなんです。
それはわかってるんですよ・・・
その部分が自分でわからなくて・・・
投稿日時 - 2012-10-22 23:51:26
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


OKWAVE若者応援スペシャル企画

ピックアップ

ページ先頭へ