アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルでUserFormに配置したボタンをクリックすると"AAA.pps"という名のパワーポイントスライドショーが始まる、としたい。
次の形でパワーポイントを開くところまでは参考書で見つけたが
その先の名前の指定方法がわかりません。ご教示乞う。
エクセル、パワーポイントともに2003。

Private Sub CommandButton1_Click()
Application.ActivateMicrosoftApp xlMicrosoftPowerPoint
End Sub

試行錯誤でマクロの記録で取得した次のコードでは頭の「Presentations」で「変数が定義されていません」と断られました。

sub aaaaa()
Presentations.Open FileName:="C:\Documents and Settings\user\My Documents\AAA.pps", ReadOnly:=msoFalse
With ActivePresentation.SlideShowSettings
.ShowType = ppShowTypeKiosk
.LoopUntilStopped = msoTrue
.ShowWithNarration = msoTrue
.ShowWithAnimation = msoTrue
.RangeType = ppShowAll
.AdvanceMode = ppSlideShowUseSlideTimings
.PointerColor.SchemeColor = ppForeground
.Run
End With
End Sub

A 回答 (2件)

こんにちは。



>具体的にどのように書けばいいのかわかりません。

私は、パワーポイントは持っていませんが、このようにすればよいと思っています。


sub aaaaaR()
Dim pptApp As Object
Set pptApp = CreateObject("PowerPoint.Application")

With pptApp
.Presentations.Open FileName:="C:\Documents and Settings\user\My Documents\AAA.pps", ReadOnly:=msoFalse
  With .ActivePresentation.SlideShowSettings
    .ShowType = ppShowTypeKiosk
    .LoopUntilStopped = msoTrue
    .ShowWithNarration = msoTrue
    .ShowWithAnimation = msoTrue
    .RangeType = ppShowAll
    .AdvanceMode = ppSlideShowUseSlideTimings
    .PointerColor.SchemeColor = ppForeground
    .Run
  End With
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
ご教示いただいたもので実行したところ「Presentations.Open:無効な要求です
PowerPoint のフレームウインドウは存在しません」とのエラーになりました。
そこで頭に
Application.ActivateMicrosoftApp xlMicrosoftPowerPoint
を加えましたところ指定のスライドショーが始まるようにできました。
但し、いったん何もないパワーポイントが開き、おもむろにスライドショーを開始するという形のためあまり格好よくありません。
蛇足ながらWithの中の
RangeType
PointerColor.SchemeColor
は「エミュレーション値が無効です」とかでエラーになるため削除しました。
初心者で訳も分からずやっておりますが、どうぞ今後ともよろしくお願いいたします。
(お礼のポイントのつけ方もわかりません。ご勘弁ください。)

お礼日時:2007/11/22 17:56

こんにちは。



>Presentations

これは、パワーポイントのオブジェクトです。だから、Excelの親オブジェクトとは違いますから、オートメーション・オブジェクトを作ってあげないといけないのではありませんか?

たとえば、

Set pptApp = CreateObject("PowerPoint.Application")
または、
Set pptApp = GetObject(,"PowerPoint.Application")

もしくは、参照設定で、Microsoft PowerPoint 11.0 Object Library 
で、指定してもよいです。この場合も、pptのApplicationオブジェクトは、作ってください。

そして、

pptApp.Presentations.Open

としてあげればよいと思います。ただし、そのふたつの内のGetObject は、ファイル名を入れられるのですが、親オブジェクト(Application)は、そこから取り出さないといけないから、面倒なので、親オブジェクトを指定したほうがよいと思います。なお、GetObject で、Applicationを呼び出す場合は、すでに立ち上がっていないと、エラーになります。ファイルを呼び出す場合は、エラーにならないはずです。
    • good
    • 0
この回答へのお礼

早速ありがとうございます。
せっかくご回答いただきましたが、全くの初心者のため内容を理解できませんでした。
具体的にどのように書けばいいのかわかりません。
「pptApp」の定義の仕方すらわからないのです。
申し訳ありません。
もう少し修行してから出直します。

お礼日時:2007/11/22 10:10

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