在 vba 中使用正则表达式更改 Powerpoint 中的视频名称

Change video name in Powerpoint using regex in vba

我正在尝试搜索我的演示文稿中的所有视频并更改每个视频的扩展名;从 XXXX.mp4 更改为 XXXX.wmv,反之亦然,但每当我进入正则表达式部分时,我都会在 "pptShape.LinkFormat.SourceFullName"

上收到错误消息
Sub Test()

    Dim pptSlide As Slide
    Dim pptShape As Shape
    Dim Regx As Object
    Dim regX_matches As Object


    Set Regx = CreateObject("vbscript.regexp")
    With Regx
        .Global = True
        .Pattern = ".*"
    End With

    For Each pptSlide In ActivePresentation.Slides
        For Each pptShape In pptSlide.Shapes
            If pptShape.Type = msoMedia Then
                If pptShape.MediaType = ppMediaTypeMovie Then
                    Set regX_matches = Regx.Execute(pptShape.LinkFormat.SourceFullName)
                    Debug.Print "TEST '" + regX_matches + "'"
                    If regX_matches <> "" Then
                        pptShape.LinkFormat.SourceFullName = regX_matches(0) + ".mp4"
                    End If
                End If
            End If
        Next pptShape
    Next pptSlide

End Sub

有什么建议吗?

提前致谢

Edit1:我的视频是嵌入的,所以正如 JamieG 所说 pptShape.LinkFormat.SourceFullName 不起作用...知道如何修改嵌入的视频吗?

错误是什么?我设法通过尝试 return 嵌入(未链接)视频的 SourceFullName 属性 来生成以下错误所以你的视频是链接还是嵌入?

LinkFormat (unknown member) : Invalid request. This operation requires a linked object.

您可以使用以下 属性 形状为此添加测试:

pptShape.MediaFormat.IsLinked

所以:

子测试()

Dim pptSlide As Slide
Dim pptShape As Shape
Dim Regx As Object
Dim regX_matches As Object


Set Regx = CreateObject("vbscript.regexp")
With Regx
    .Global = True
    .Pattern = ".*"
End With

For Each pptSlide In ActivePresentation.Slides
    For Each pptShape In pptSlide.Shapes

        If pptShape.Type = msoMedia Then
            If pptShape.MediaType = ppMediaTypeMovie And pptShape.MediaFormat.IsLinked Then
                Set regX_matches = Regx.Execute(pptShape.LinkFormat.SourceFullName)
                Debug.Print "TEST '" + regX_matches + "'"
                If regX_matches <> "" Then
                    pptShape.LinkFormat.SourceFullName = regX_matches(0) + ".mp4"
                End If
            End If
        End If
    Next pptShape
Next pptSlide

结束子