2

私はフォーラムを初めて使用し、VBA を使用して数か月になります。私のコーディング経験はすべて Matlab で行っています。これまでのところ、VBA よりもはるかに簡単です。フォーラムのルールを読み、この回答を高低で検索しましたが、役に立ちませんでした。

さまざまな Excel 範囲を PowerPoint のさまざまなスライドに貼り付けようとしています。アクティブなスライドが何であるかに関係なく、範囲が対応する PowerPoint スライドに貼り付けられるように、以下のコード (さまざまなフォーラムの回答からスニペットを取得) を変更したいと考えています。「gotoslide」を試してみましたが、うまくいきませんでした。ppviewnormal を使用しましたが、それもうまくいきませんでした。このコードは、異なるスライドの異なる範囲に対して繰り返されます。これまでのところ、コードは作成されたスライド上にいる場合にのみ機能し、アクティブなスライドに関する問題に関係していることはわかっていますが、コードを変更する方法がわかりません。よろしくお願いします。

' Desired Range in Excel to be copied into ppt
  Sheets("Summary").Activate
  Range("A5:H40").Select

' Initialize PowerPoint Object Library
Set PPApp = GetObject(, "Powerpoint.Application")
' Reference active presentation
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewSlide
' Denote slide where range is to be copied
Set PPSlide = PPPres.Slides(5)

' Copy the range as a picture
Selection.CopyPicture Appearance:=xlScreen, _
    Format:=xlPicture

' Paste the range
PPSlide.Shapes.Paste.Select
4

1 に答える 1

3

最後の行から「.Select」を削除

これはあなたのコードの短いバージョンです:

' Initialize PowerPoint Object Library
Set PPApp = GetObject(, "Powerpoint.Application")
' Reference active presentation
Set PPPres = PPApp.ActivePresentation

' Copy the range as a picture
Sheets("Summary").Range("A5:H40").CopyPicture Appearance:=xlScreen, Format:=xlPicture
' Paste the range
PPPres.Slides(1).Shapes.Paste
于 2013-09-06T18:55:27.060 に答える