1

1 つの PowerPoint (PRS_data) でタイトルの一致を検索し、そのスライドを新しい PowerPoint (PRS) にコピーする VBA スクリプトを作成しました。ソース上のスライドは、単なるタイトルと画像です。一部のスライドをコピーすると、画像が引き継がれないか、赤い X のボックスが表示されます。

PowerPoint 2007 SP3 を使用しているため、赤い X 修正プログラムは問題になりません。

DoEvents と Sleep も追加しようとしましたが、成功しませんでした。

ユーザーの画面で宛先ウィンドウを最大化したままにしておくと機能するように見えますが、最小化すると散発的に空白のスライドが表示されます。結果は矛盾しています。また、コピー先が空のプレゼンテーションであり、正しいタイトルが付けられたスライドでいっぱいであるため、スライドがコピーされることを確認できます繰り返しますが、一貫性のない結果です。

誰もが前にこれに出くわしました??

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

For Each Sld In PRS_data.Slides
    If Sld.SlideIndex > 1 Then          
        If (Sld.Shapes.Title.TextFrame.TextRange.Text Like "*" & iDiv & " Division*") Then
            PRS_data.Slides.Range(Sld.SlideIndex).Cut
            PRS.Windows(1).Activate
            PRS.Slides.Paste
            DoEvents
        End If
    End If
Next
4

1 に答える 1

1

切り取りやコピーの直後は貼り付けできません。システム上の他のプログラムがカットに反応しているため、クリップボードはまだ利用できません。何年も前であれば、おそらく PowerPoint から「クリップボードを開けません」というエラーが表示されていたでしょうが、明らかに何も言わずに失敗するわけではありません。

これがエンドユーザー アプリケーションであり、他のクリップボード対応アプリを実行している場合、またはリモート デスクトップを使用している場合、それらのユーザーはあなたのプログラムを嫌います。クリップボードは、開発者ではなく、ユーザーの利便性のために提供されています。

とはいえ、CUT/COPY コマンドの直後に 2 秒間のスリープを追加することで、おそらくこれを機能させることができます。

于 2013-03-25T15:40:05.200 に答える