5

これをどのスタックサイトに配置するか本当にわかりません。自由に正しいものに移動してください。私の質問はプログラミングとはあまり関係ありませんが、これらの「ワークシート オブジェクト」がスライドに埋め込まれたパワー ポイントがたくさんあります。Excel のグラフや、Visio のグラフ タイプのアイテムのように見えるものもあります。これらすべての「ワークシート オブジェクト」をスライド内の画像だけに変換する必要があります。

現在の私のプロセスは、オブジェクトをコピーする>イメージとして貼り付ける>正しい場所に移動する>「ワークシートオブジェクト」を削除することです。これは非常に時間がかかり、退屈なプロセスです。私が作成できるマクロ、またはこれらすべてのオブジェクトを自動的に変換できるものはありますか? 私はグーグルを試しましたが、今のところ運がありません

4

2 に答える 2

11

これで始められるはずです:

Sub ConvertAllShapesToPic()
    Dim oSl As Slide
    Dim oSh As Shape

    For Each oSl In ActivePresentation.Slides
        For Each oSh In oSl.Shapes
            ' modify the following depending on what you want to
            ' convert
            Select Case oSh.Type
                Case msoChart, msoEmbeddedOLEObject, msoLinkedOLEObject
                    ConvertShapeToPic oSh
                Case msoPlaceholder
                    If oSh.PlaceholderFormat.ContainedType = msoEmbeddedOLEObject _
                        Or oSh.PlaceholderFormat.ContainedType = msoLinkedOLEObject _
                        Or oSh.PlaceholderFormat.ContainedType = msoChart _
                        Then
                        ConvertShapeToPic oSh
                    End If
                Case Else

            End Select
        Next
    Next

End Sub

Sub ConvertShapeToPic(ByRef oSh As Shape)
    Dim oNewSh As Shape
    Dim oSl As Slide

    Set oSl = oSh.Parent
    oSh.Copy
    Set oNewSh = oSl.Shapes.PasteSpecial(ppPasteEnhancedMetafile)(1)

    With oNewSh
        .Left = oSh.Left
        .Top = oSh.Top
        Do
            .ZOrder (msoSendBackward)
        Loop Until .ZOrderPosition < oSh.ZOrderPosition
    End With

    oSh.Delete

End Sub
于 2012-10-26T03:52:16.310 に答える
1

マクロを書きたくない場合の他の簡単な方法は、オブジェクトを切り取り (Ctrl + x)、それを img として貼り付けます (Ctrl + v) (特殊な貼り付けを使用して画像形式を選択するか、貼り付けを行うときに使用できます)。 (Ctrl + v) MS パワー ポイントは、貼り付けのオプションを表示し、その中の画像を選択します)。この方法では、画像をドライブ上の場所に保存してからスライドに挿入する必要がありません。切り取りと貼り付けは、同じスライド上で機能します。

于 2016-04-04T11:41:41.987 に答える