View Single Post
 
Old 11-13-2023, 02:27 AM
gmayor's Avatar
gmayor gmayor is offline Windows 10 Office 2019
Expert
 
Join Date: Aug 2014
Posts: 4,144
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

The following should work. You will need to add a few lines to your macro and then call it from an autoexec macro in the same template.
Basically it checks whether the time is before 11 am when Word is opened. If it is, it then checks whether a custom document property exists and if it doesn't contain today's date it runs your macro, which updates the document property and saves the template.



Code:
Option Explicit

Sub AutoExec()
Dim oCP As DocumentProperty
Dim bProp As Boolean
    If Val(Format(Now, "hhmm")) < "1100" Then
        For Each oCP In ThisDocument.CustomDocumentProperties
            If oCP.Name = "AutoRunDate" Then
                If oCP.value = Date Then
                    bProp = True
                    Exit For
                End If
            End If
        Next oCP
        If bProp = False Then Call MyMacro
    End If
End Sub


Sub MyMacro()
Dim oCP As DocumentProperty
Dim bProp As Boolean
For Each oCP In ThisDocument.CustomDocumentProperties
    If oCP.Name = "AutoRunDate" Then
        oCP.value = Date
        bProp = True
        Exit For
    End If
Next oCP
If bProp = False Then
    ThisDocument.CustomDocumentProperties.Add Name:="AutoRunDate", _
        LinkToContent:=False, _
        value:=Date, _
        Type:=3
End If
ThisDocument.Save
MsgBox "Test"  'the rest of your macro code
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote