首页 > 解决方案 > 使用 VBA 恢复 JPG 文件中的元数据

问题描述

现在找到了一个批量编辑程序,它可以帮助我重新控制大量的图片文件。它的另一面是部分元数据在编辑中消失了。我不会为丢失的高级相机设置而哭泣,但我想要保留的几件事是照片日期和相机型号。

使用以下方法可以轻松检索所选信息:

Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.Namespace(strFolder)
Set objFolderItem = objFolder.ParseName(strFile)
... followed by...
Cells(2,iColumn).Value = objFolder.getdetailsof(objFolderItem, 12) '(12 = photo taken)*<br>
Cells(3,iColumn).Value = objFolder.getdetailsof(objFolderItem, 30) '(30 = camera model)

(...等带有选定的详细信息)

在文件夹的循环中,结果将是一个工作表,其中包含文件名及其元数据在表格中......这就是我现在所在的位置。我正在搜索,我正在搜索,我似乎唯一找到的是检索信息的不同方法,但我想知道的是如何将其放回文件中。

提前致谢。
/缺口

标签: vba

解决方案


你想要做的是通过 VBA 修改图像文件标签/属性,这是不受支持的。仅支持读取,并且大多数方法对于文件夹对象内部Shell32.Folder都是只读的。 修改元数据的唯一方法是通过外部工具exiftool。 但它是一个命令行工具,所以使用这篇文章从 excel vba 运行它。Shell32.FolderItem


推荐阅读