3

VBA コードを Office2003 から Office2010 に移行する際に問題が発生しました。セル (Excel) のテキストを PowerPoint にコピーしたいと考えています。Office2003 は新しいテキスト ボックスを生成し、テキストのスタイルは Excel と同じでした。Office2010 でコードが失敗し、次のメッセージが表示されます。

ランタイム エラー -2147188160 (80048240) Shapes.PasteSpecial : 無効な要求です。クリップボードが空であるか、ここに貼り付けられないデータが含まれています。

クリップボードは間違いなく空ではありません。

コードは次のとおりです。

Set mySlides = obj_pp.ActivePresentation.Slides
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteRTF

私はすでに他のデータ型と貼り付け機能を試しました。何も助けませんでした。Excel からコピーしたテキストは、Excel でもテキストとして書式設定されています。特にない。スライドは空のスライドとして追加されます。スライドを追加した後、画像が貼り付けられます (DataType:=ppPasteEnhancedMetafile)。その後、テキストを貼り付ける必要があります。

誰かがこのコードを機能させるのを手伝ってくれませんか? 前もって感謝します。さらにコードが必要な場合はお知らせください。

編集: ppt のバインディング:

Dim Datei As String

Pfad_Server = "..."
Pfad_Verzeichnis = "..."
Dateiname = "....pptx"
Datei = Pfad_Server & Pfad_Verzeichnis & "\" & Dateiname
Set obj_pp = (GetObject(, "Powerpoint.Application"))
obj_pp.Visible = True
IsOpen = False

マクロを実行する前に、私は常に ppt を開きます。これはうまくいきます。

スライドを追加して範囲を画像として貼り付けます (正常に動作します):

Range(Cells(start_var, 1), Cells(bereich_ende, 13)).Select
Selection.CopyPicture xlScreen, xlPicture
...
Set mySlides = obj_pp.ActivePresentation.Slides

mySlides.Add Index:=mySlides.Count + 1, Layout:=12 'ppLayoutBlank
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile
4

1 に答える 1