0

写真を撮って開いているスライドショーに追加する PowerPoint マクロがあります。画面の左側にあるスライドのリストの下をクリックしてマクロを実行しようとすると (最後のスライドの下に水平バーが点滅します)、次のエラーが表示されます。

Runtime error '-2147188160 (80042240)': 
Shape unknown member: invalid request. To select a shape, its view must be active

これは、有効なオブジェクトが選択されていなかったためだと考えたため、デバッグ ステートメントを追加して、選択内容を特定しました。

If ActiveWindow.Selection.Type = 0 Then
   MsgBox "0"
End If
If ActiveWindow.Selection.Type = 1 Then
   MsgBox "1"
End If
If ActiveWindow.Selection.Type = 2 Then
   MsgBox "2"
End If
If ActiveWindow.Selection.Type = 3 Then
   MsgBox "3"
End If

最初に画像が追加されると a1が表示され、画像は正しく追加されますが、エラーが表示されてマクロが停止します。面倒なことに、これをデバッグモードで実行しようとすると、毎回動作します。デバッグするときに、偶然に手動で問題を修正しているとしか思えません。

問題を引き起こしているステートメント:

ActiveWindow.Selection.SlideRange.Shapes.AddPicture(//file information//).Select 

//the line after
ActiveWindow.Selection.ShapeRange.ZOrder msoSendToBack
4

3 に答える 3

1

私はここで何が起こっているか知っていると思います。あなた/ユーザーがサムネイル ペインでスライドのサムネイルをクリックした場合、アクティブな選択は、追加された画像ではなくスライドである可能性があります。

次のようなことを行うことで、これを回避できます。

Dim oSh as Shape

Set oSh = ActiveWindow.Selection.SlideRange.Shapes.AddPicture(//file information//)
oSh.ZOrder msoSendToBack

選択範囲を操作するのではなく、オブジェクト参照 (この場合は oSh) を使用する多くの理由の 1 つにすぎません。;-)

于 2013-06-20T22:02:48.720 に答える
1

スライド ショーの実行中に写真を追加したい場合は、次の方法でも実行できます。

Dim fileName, filename1, filename2
fileName = "c:\PROJEKT\....\Hydrangeas.jpg" 'your path +file name here
fileName1 = ... 'add other file path
fileName2 = ... 'add other file path

With ActivePresentation.SlideShowWindow.View.Slide.Shapes
    .AddPicture fileName, True, True, 10, 10, 100, 100
    .AddPicture fileName1, True, True, 30, 30, 100, 100
    .AddPicture fileName2, True, True, 50, 50, 100, 100
    '...etc.
End With

それが役立つことを願っています...

于 2013-06-20T20:25:15.603 に答える
0
Use ActiveWindow.View.GotoSlide oSlide.SlideIndex

スライドで図形を選択する前にビューをアクティブにします。

詳細はこちら

于 2014-10-01T11:44:14.860 に答える