[[20220222201124]] 『グラフの貼り付けエラー』(ジャンボ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『グラフの貼り付けエラー』(ジャンボ)

マックでグラフの貼り付けマクロを作成しているのですが、
下記マクロを実行すると固まってしまいます。
エラーメッセージも出てこないのですが、こちらはどういった原因が考えられるのでしょうか。

Sub PowerPointのスライドを選択する()
Application.ScreenUpdating = False
Dim pptAp As New PowerPoint.Application

  Dim pp As Object: Set pp = pptAp.ActivePresentation 'PPTプレゼン
  Dim ppS As Object 'PPTスライド
   Dim ppShape As Object 'PPTスライド
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
Set ppS = ws.ChartObjects("グラフ 1").Chart
ppS.Copy
pp.Slides(2).Pictures.Paste
Application.ScreenUpdating = True
End Sub

< 使用 Excel:Office365、使用 OS:MacOSX >


 ppApp は New してるので、新規にPowerPointが起動します。
 (マクロ実行時に開いているパワーポイントとは別インスタンス)

 Set pp = pptAp.ActivePresentation  は空だとおもいますよ
 GetObjectで起動済みのパワーポイントアプリケーションを取得するか、
 ファイルを指定して、 pptAp.Presentations.Open しないといけないです。

 他にも、
 PowerPointのVBAはよく知らないですが、

 pp.Slides(2).Pictures.Paste ← これが正しいかどうかわかりませんが、ダメな気がします
(´・ω・`) 2022/02/22(火) 22:27

ご対応いただきましてありがとうございます。感謝いたしております。
ご教示いただきました通り、以下のようにマクロを変更しましたところ、
実行に3分ほど時間を要して「別のプログラムでOLEの操作が完了するまで待機します」というメッセージが出現して、それに対してOKボタンを押してようやく貼り付けが実行されます。
おかげさまで無事貼り付けができたところではございますが、実現に時間を多く要するのはどういったことが原因として考えられますでしょうか・・・?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub PowerPointのスライドを選択する()
Application.ScreenUpdating = False
Dim pptAp As New PowerPoint.Application
  Dim pp As Object: Set pp = pptAp.ActivePresentation 'PPTプレゼン
  Dim ppS As Object 'PPTスライド
   Dim ppShape As Object 'PPTスライド
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
Set ppS = ws.ChartObjects("グラフ 1").Chart
ppS.CopyPicture xlScreen, xlPicture
pp.Slides(2).Shapes.Paste
Application.ScreenUpdating = True
End Sub
(ジャンボ) 2022/02/22(火) 22:47

 Windows10 Office365の環境では、提示のコードは、

 Set pp = pptAp.ActivePresentation 'PPTプレゼン
 のところで
 Application (不明なメンバー) : 無効な要求です。アクティブなプレゼンテーションがありません。
 というエラーになります。

 MacOSXでは、これで実行できるんですか?

 Windowsの環境とはかなり違うようですね。私ではお役には立てないようです
(´・ω・`) 2022/02/22(火) 23:30

大変失礼いたしました。
先ほどのコードは貼り付けミスです。紛らわしいことをしてしまい申し訳ございません。
改めてコードは以下になります。
下記コード実行で、上記と同様に、実行に3分ほど時間を要して「別のプログラムでOLEの操作が完了するまで待機します」というメッセージが出現して、それに対してOKボタンを押してようやく貼り付けが実行されるような現象が生じます。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
Sub PowerPointのスライドを選択する()
Application.ScreenUpdating = False
  Dim pp_app As Object
  Set pp_app = GetObject(Class:="PowerPoint.Application")
  Dim sld As Object
  Set sld = pp_app.ActivePresentation.Slides.Item(1)

  Dim ppS As Object 'PPTスライド
   Dim ppShape As Object 'PPTスライド
Dim ws As Worksheet
Set ws = ThisWorkbook.ActiveSheet
Set ppS = ws.ChartObjects("グラフ 1").Chart
ppS.CopyPicture xlScreen, xlPicture
sld.Shapes.Paste
Application.ScreenUpdating = True
End Sub
(ジャンボ) 2022/02/22(火) 23:46

マックのエクセルはわかりませんね…
どなたかわかる方いますかね…
(ナンプラー) 2022/02/24(木) 11:01

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.