2013-04-13 23 views
0

我在PowerPoint演示文稿中有一些图像和视频。取决于每种格式(jpg,mp3,jpeg,...)的格式我希望它做出不同的事情,所以我需要知道它是什么类型的文件。在Visual Basic中有什么可以做到的吗?获取图像和视频的视觉基本格式

EDITED

我想通过差异与iPad不支持的的那些支持的图像和视频。这就是为什么我需要知道它们的格式。

+0

他们是简单的嵌入或嵌入链接到原始文件? –

+0

我现在正在使用的是简单的嵌入式,但知道如何在两种方式下制作会很好:) –

+0

尝试使用'Shape.Type'属性来获取约1个。 20种可能的形状。您可以额外使用链接形状的'Shape.LinkFormat.SourceFullName'属性来检查文件扩展名。如果您需要更多信息,请在您的问题中提供更多信息(关于可能的类型和您要运行的操作取决于形状的类型)。 –

回答

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 

要为当前演示文稿的幻灯片1日试运行试试这个代码:

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子目录中运行你所需要的。 在这个简单的想法,我保留On Error Resume Next以避免错误,如果形状不链接。

+0

这只适用于链接的文件...我需要正常的文件。如果有正常的链接,也应该是一些东西。 –

+0

在我的回答开始时正是这样说的,并且在您的问题下面留言! –

+0

你已经有这个演示文稿,或者你会创建它?我不认为有任何解决方案嵌入式未链接的形状。我找不到... –

1

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

它们的格式可能与原来的格式不同; PPT在导入图像时有时会转换图像。但考虑到你在追求什么,这不应该成为一个问题。