1
votes

I have code in Word that copies a folder, pastes the folder in a similar area, and renames the files to the current week number.

Inside a file within the folder, there is a PowerPoint presentation. The presentation has a footer with text and I want update that text within the Word code. I've tried many different things.

This is my current code:

Dim FSO As Object
Dim FromPath As String
Dim ToPath As String
Message = Format(Date, "ww", vbSunday)

'if message < 10 then it will be KW0 + WEEK NUMBER. IF IT IS BIGGER THAN TEN, IT WILL BE KW + NUMBER.

If Message < 10 Then
    FromPath = "directory here"
    ToPath = "directory here"
End If

If Message >= 10 Then
    FromPath = "directory here"
    ToPath = "directory here"
End If

If Right(FromPath, 1) = "\" Then
    FromPath = Left(FromPath, Len(FromPath) - 1)
End If

If Right(ToPath, 1) = "\" Then
    ToPath = Left(ToPath, Len(ToPath) - 1)
End If

Set FSO = CreateObject("scripting.filesystemobject")

If FSO.FolderExists(FromPath) = False Then
    MsgBox FromPath & " doesn't exist. Please speak to me."
    Exit Sub
End If

FSO.CopyFolder Source:=FromPath, Destination:=ToPath

If Message < 10 Then
    Name "directory here" _
    As "directory here"

    Name "directory here" _
    As "directory here"
End If

If Message >= 10 Then
    Name "directory here" _
    As "directory here"

    Name "directory here" _
    As "directory here"
End If

The above works.

Moving on to the opening of the presentation is the following: (Note: the presentation opens but I'm unable to edit the footer within the VBA code.)

Dim opptapp As PowerPoint.Application
Dim oPPTFile As PowerPoint.Presentation
Dim oPPTSlide As PowerPoint.Slide
Set opptapp = CreateObject("PowerPoint.Application")
opptapp.Visible = msoTrue

If Message < 10 Then
    Set oPPTFile = opptapp.Presentations.Open(FileName:="directory here")
End If

If Message >= 10 Then
    Set oPPTFile = opptapp.Presentations.Open(FileName:="directory here")
End If

ActivePresentation.Slides(1).HeadersFooters.Footer.Text = "Volcano Coffee"

MsgBox "The pack for next week has now been generated!"

End Sub
1
Does the line of code assigning Footer.Text work in PowerPoint VBA? And, looking at the code you post, don't use ActivePresentation when you've already instantiated oPPTFile - use that.Cindy Meister
@CindyMeister, I'm not 100% sure if the footer.text works in the VBA. I either get an error code regarding ActiveX or I get an error message stating that the "HeaderFooter" is an unknown member.CallumBrown

1 Answers

0
votes

In order to change a setting in a HeaderFooter object it's necessary to make sure the object is "visible", otherwise it doesn't exist. So, for example

With oPPTFile.Slides(1).HeadersFooters.Footer
   .Visible = True
   .Text = "Volcano Coffee"
End With