こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBAで、ExcelとPowerPointの連携

EXCEL VBAにて、PowerPointのObjectを作って、エクセルからプレゼンテーションの作成をしています。
一旦、パワーポイントのウィンドウが選択された後、Excelのウィンドウを選択する方法がわかりません。 エクセルのデータを読み込んで、パワーポイントに貼り付ける分には、別にエクセルのウィンドウを選択する必要はないので、大きな問題ではありませんが、それでも、エクセルにて、msgboxを実行しようとすると、Excelウィンドウが選択されていないために、フラッシュして、ユーザーに「エクセルを選択しろ」と警告してきます。 この不都合を解消したいのです。
以下のサンプルにて、本当は、(1) の位置にmsgboxを入れたいのですが、上記のことがあるので、(2)の位置にmsgboxを入れて対応しています。
(1)の位置でも、msgboxが素直に表に出てくるように「VBAコードにて、Excelウィンドウを選択する」
方法をよろしくお願い致します。

Sub test1()
Dim ppApp As New PowerPoint.Application
Dim PPfile As PowerPoint.Presentation

With ppApp
.Visible = msoTrue
.Windows.Application.Left = 600
.Windows.Application.Top = 0
.Windows.Application.Width = 350
.Windows.Application.Height = 350
Set PPfile = .Presentations.Add
With PPfile
n = .Slides.Count
With .Slides.Add(n + 1, ppLayoutTitleOnly)
.Select

End With
End With
End With
PPfile.SaveAs Filename:=ThisWorkbook.Path & "\" & "mySample.ppt"
PPfile.Save
PPfile.Close
ppApp.Quit

' MsgBox "プレゼンテーション作成終了” '------(1)

Set ppApp = Nothing
Set PPfile = Nothing

MsgBox "プレゼンテーション作成終了” '------(2)
End Sub

投稿日時 - 2013-07-14 23:11:00

QNo.8176499

すぐに回答ほしいです

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

(1)の行の前に

  VBA.AppActivate Excel.Application.Caption

を入れてやるとどんな感じでしょう?

投稿日時 - 2013-07-15 00:31:26

補足

うまくいきました。
ありがとうございました。

色々調べました。

For i = 1 To 5
VBA.AppActivate Excel.Application.Caption
waitTime = Now + TimeValue("0:00:1")
Application.Wait waitTime
VBA.AppActivate ("Microsoft Excel")
waitTime = Now + TimeValue("0:00:1")
Application.Wait waitTime
VBA.AppActivate ("Microsoft PowerPoint")
waitTime = Now + TimeValue("0:00:1")
Application.Wait waitTime
VBA.AppActivate ("Windows Internet Explorer")
waitTime = Now + TimeValue("0:00:1")
Application.Wait waitTime
Next

このprocedureで、ウィンドウの選択が移り変わります。
しかし、Windows exploreは、うまくいきません。
確かに、インターネットで調べると、Window sexploreはうまくいかないと
書かれていますが、本当にできないのでしょうか?
よろしくお願いします。

投稿日時 - 2013-07-16 23:22:48

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

APIでExcelをトップに持っていくしかないのでは?

投稿日時 - 2013-07-15 07:47:40

あなたにオススメの質問