excel - 如何使用VBA从Excel工作表中的图片获取EXIF信息

标签 excel vba

如何使用 VBA 从 Excel 工作表中的形状图片获取 EXIF 信息,如纬度、经度等?是否可以在不从工作表或压缩的 Excel 工作簿中提取或复制图片的情况下获得它?

我可以使用以下代码迭代压缩文件夹内容。

Public Sub ReadZip()
    Dim vZipFileName As Variant
    vZipFileName = "C:\Users\erogrou\Desktop\Test.zip"

    Dim objShell, objFolder
    Set objShell = CreateObject("shell.application")
    Set objFolder = objShell.Namespace(vZipFileName)

    Dim vFilename As Variant

    If (Not objFolder Is Nothing) Then
        Debug.Print objFolder.self.Path

        For Each vFilename In objFolder.items
            Debug.Print vFilename
        Next

    End If

    Set objFolder = Nothing
    Set objShell = Nothing

End Sub

最佳答案

幸运的是,有一件美丽的作品of coding澳大利亚中北部流域管理局的安德鲁·菲利普斯 (Andrew Phillips) 正是这样做的。

它作为类模块提供,因此我没有在此处重新列出它

当前代码可以从 Access 导入 Excel,在我的例子中,我需要将函数从 32 位更改为 64 位,如下所示:

Private Declare Function VirtualAlloc Lib "kernel32" (ByVal Address As Long, ByVal Size As Long, ByVal AllocationType As Long, ByVal Protect As Long) As Long

使用PntSafe来实现此目的

Private Declare PtrSafe Function VirtualAlloc Lib "kernel32" (ByVal Address As Long, ByVal Size As Long, ByVal AllocationType As Long, ByVal Protect As Long) As Long

关于excel - 如何使用VBA从Excel工作表中的图片获取EXIF信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43362130/

相关文章:

vba - Virtual Protect 的 64 位声明是否正确?

excel - 在 Excel 中使用 VBA 选择从 A1 到文件末尾的范围

vba - EXCEL - 以 RowHeight 作为条件的 IF 语句不起作用

excel - 读取 Excel Open XML 会忽略空白单元格

excel - VBA Excel 到 Sql Server

vba - 加快 VBA 速度吗?

vba - Excel VBA 类型与 If 函数不匹配

python - 通过 Pandas 和 Numpy.ndarray 类型将 Excel 矩阵转换为 JSON

vba - 用 if 语句嵌套的 while 循环 vba 只打印第一个 "TRUE"值并停止

excel - 将 boolean 自动过滤条件应用于不同的语言