在VBA中更改“上次修改日期”属性

时间:2018-04-23 15:40:31

标签: vba powerpoint

如何使用VBA更改powerpoint的“Date Last Modified Property”?尝试在底部设置f.FileDateModified时出错。这是我到目前为止所做的:

    Set oPresentation = Presentations.Open(sFolder & StrFile, , , False)
       Dim fso As Object
       Set fso = CreateObject("Scripting.FileSystemObject")
       Dim oFile As Object
       Dim fileModDate As String
       Set fs = CreateObject("Scripting.FileSystemObject")
       Set f = fs.GetFile(sFolder & StrFile)
       fileModDate = f.DateLastModified
       Set oFile = fso.CreateTextFile(sFolder & StrFile & "meta.txt")
       oFile.WriteLine "Last author: " & oPresentation.BuiltInDocumentProperties("Last author")
       'oFile.WriteLine "Last save time: " & oPresentation.BuiltInDocumentProperties("Last save time")
       oFile.WriteLine "Date last modified " & fileModDate
       oFile.Close

       Call oPresentation.SaveAs(sFolder & StrFile & "x")
       Set f = Nothing
       Set fs = Nothing

       Set fs = CreateObject("Scripting.FileSystemObject")
       Set f = fs.GetFile(sFolder & StrFile & "x")
       f.DateLastModified = fileModDate

       oPresentation.Close
       Set f = Nothing
       Set fs = Nothing

1 个答案:

答案 0 :(得分:2)

此代码将 ModifyDate 设置为任何已关闭文件的当前日期和时间。它不适用于打开的文件,但如果文件已打开,则不会出错。 我使用了 VBA Word,但我想它虽然适用于 VBA PowerPoint。

Sub SetDateTime(Folder, FileName)
   Dim oFile As Object

   Set oFile = CreateObject("Shell.Application").Namespace(Folder).ParseName(FileName)
   oFile.ModifyDate = FormatDateTime(Date, 2) & " " & FormatDateTime(Time, 3)
   Set oFile = Nothing
 
End Sub

另一件事是日期和时间的格式。我将函数 FormatDateTime 分别与选项 23 一起使用。请注意两者之间的空间。当然,DateTime 的值可以根据您的需要进行更改。