【问题标题】:get format of image and videos in visual basic在visual basic中获取图像和视频的格式
【发布时间】:2013-04-05 23:48:12
【问题描述】:

我的 powerpoint 演示文稿中有一些图片和视频。取决于每种格式(jpg,mp3,jpeg,...)我希望它制作不同的东西,所以我需要知道它是什么样的文件。 Visual Basic 中有什么可以实现的吗?

已编辑

我想将 iPad 支持的图像和视频与不支持的图像和视频区分开来。这就是为什么我需要知道它们的格式。

【问题讨论】:

  • 它们是简单嵌入还是嵌入原始文件的链接?
  • 我现在使用的是简单的嵌入式,但如果知道如何用这两种方式制作会很棒:)
  • 尝试使用Shape.Type 属性来获得大约一个。 20 种可能的形状。您还可以对链接形状使用“Shape.LinkFormat.SourceFullName”属性来检查文件扩展名。如果您需要更多信息,请在您的问题中提供更多信息(关于可能的类型和您将根据形状类型运行的操作)。
  • 我添加了一些关于我想做的事情的更多信息。我已经在使用 Shape.Type 来了解它是图像还是视频......但我还需要知道每个图像或视频的格式。 'Shape.LinkFormat.SourceFullName` 不起作用,因为我没有使用链接的形状,但如果您知道如何处理普通文件(从我的计算机连接)可能是一个解决方案。谢谢!
  • 目前我只知道我链接的文件,不知道如何为嵌入式文件做。

标签: image vba video powerpoint


【解决方案1】:

编辑:明确说明 - 下面的解决方案仅适用于链接到文件的形状!

Function WhatTypeOfMedia(SHP As Shape)

    Select Case Right(SHP.LinkFormat.SourceFullName, 4)
        Case ".jpg", "jpeg"
            WhatTypeOfMedia = "Picture type"
        Case ".wav", ".mp3"
            WhatTypeOfMedia = "Music type"
        '... end other possible types put here
    End Select
End Function

要对当前演示的第一张幻灯片进行测试,请尝试以下代码:

Sub Take_format_Linked()

    On Error Resume Next    'required for these files which are not linked
    Dim SHP As Shape
    For Each SHP In ActivePresentation.Slides(1).Shapes
    '1st check if format is linked- best option:
    If Len(SHP.LinkFormat.SourceFullName) > 0 Then
        If Err.Number = 0 Then
        'if so, let's call function
            Debug.Print WhatTypeOfMedia(SHP)
        'here you can do what you want based on function result
        Else
            Err.Clear
        End If
    End If
    Next

End Sub

因此,您可以在即时窗口中获得有关形状是哪种类型的信息。您可以使用这些类型在 main sub 中运行您需要的内容。 在这个简单的想法中,我保留了On Error Resume Next,以避免在未链接 Shape 时出错。

【讨论】:

  • 这个只适用于链接的...我需要正常的。如果有 for 链接为正常的也应该是什么。
  • 在我的回答开头和您的问题下方的评论中确切地说出了这句话!
  • 您是否已经拥有此演示文稿或者您将创建它??我不认为嵌入式未链接形状有任何解决方案。我找不到...
  • 我将其作为其他演示文稿的模板,因为我想将其迁移到 iPad...但是如果我无法区分格式,我不知道该怎么做它支持... :( 无论如何感谢您的帮助!
  • 对未来演示的一个建议。您可以使用.Tags 参数为您将在下一个演示文稿中放置的每个形状。输入有关文件类型或/和扩展名的标签信息,并将其用于进一步检查...如果您发现其他任何已存在的形状,请在此处提供您的答案...
【解决方案2】:

正如已经指出的那样,您可以获取链接文件的文件类型,但无法获取嵌入文件的文件类型。但是,如果您不需要在 VBA 中执行此操作或可以在 VBA 中操作 ZIP 文件,请以 zip 格式打开 PPTX 并查找媒体文件夹。在那里您可以找到任何嵌入的文件(图片、声音、电影)。

它们的格式可能与最初的格式不同; PPT 有时会在导入图像时转换图像。但考虑到您的目标,这应该不是问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    相关资源
    最近更新 更多