エクセルVBAを使用して自動化されたスクリプトを使用してexcelからpowerpointまでのデータを転送します。私はエクセルワークシートのusedrangeをコピーし、それをパワーポイントのイメージとして貼り付けようとしています.4番目のスライドのテンプレートから、新しいスライドを追加し、残りのワークシートを次のスライドにコピーする必要があります。VBAからpowerpointにコピー
私が現在使用しているコードは、誰もが私の次のためのコードを示唆することができます、次のエラー
を「オブジェクト変数またはWithブロック変数が設定されていません」になっています。
希望が明確に説明されています。そうでない場合は、より明確に尋ねてください。
おかげ
Private Sub CommandButton2_Click()
Dim PP As PowerPoint.Application
Dim PPpres As PowerPoint.Presentation
Dim PPslide As Object
Dim PpShape As PowerPoint.Shape
Dim SlideTitle As String
Dim SlideNum As Integer
Dim WSrow As Long
Dim Sh As Shape
Dim Rng As Range
Dim myshape As Object
'Open PowerPoint and create new presentation
Set PP = GetObject(class, "PowerPoint.Application")
PP.Visible = True
PP.Presentations.Open FileName:=("\\C:\Users\Templates)"
'Specify the chart to copy and copy it
For Each WS In Worksheets
If (WS.Name) <> "EOS" Then
ThisWorkbook.Worksheets(WS.Name).Activate
ThisWorkbook.ActiveSheet.UsedRange.CopyPicture
'pSlide.Shapes.Paste
'Copy Range from Excel
Set Rng = ThisWorkbook.ActiveSheet.Range("A1:I8")
'Copy Excel Range
Rng.Copy
'Set PPslide = PPpres.Slides.Add(5, 33)
PP.ActiveWindow.View.GotoSlide (4)
Set PPslide = PPpres.Slides(4).Shapes.Paste
'Paste to PowerPoint and position
PPslide.Shapes.PasteSpecial DataType:=2 '2 = ppPasteEnhancedMetafile
Set myshape = PPslide.Shapes(PPslide.Shapes.Count)
'Set position:
myshape.Left = 66
myshape.Top = 152
End If
Next
'Make PowerPoint Visible and Active
PowerPointApp.Visible = True
PowerPointApp.Activate
'Clear The Clipboard
Application.CutCopyMode = Falseenter code here`
End Sub
正しくそれがコードフォーマットされているように、くぼみを固定することにより、あなたのコードをフォーマットし、ダブルスペース行を削除:) – samiles
そして、回線エラーを言って下さい。 – SJR
こんにちは、ありがとうございました。 Set PPslide = PPpres.Slides(4).Shapes.Paste この行から "öbjectvariableまたはブロック変数が設定されていません"というエラーが表示されます。 Excelワークシートの範囲はコピーされていますが、Powerpointのテンプレート を開いた後、特定のスライド(前述の4番目のスライド)に貼り付けることはありません。 –