View Single Post
 
Old 04-10-2023, 08:58 AM
Dan_nn Dan_nn is offline Windows 10 Office 2021
Novice
 
Join Date: Apr 2023
Posts: 7
Dan_nn is on a distinguished road
Default Improving the script

Hi all.

After using this a little, I've made a few adjustments.

- Added a few comments in the start of the script to tell clearly how to use it.
- Commented out the 'On Error Resume Next', as it might hide a failure (I'd rather know when this is not working and debug WHY or WHERE it's not working).
- Added (commented out) a MsgBox indicating the slide # so you can tell where something failed (use only if debugging).
- Added an additional verification forcing a custom error in case the source and target presentations' slide count do not match. If for a reason you know those will not match, you may need to comment it out.

Code:
Sub switchNotes()
' Target and Source files should be open
' oSource and oTarget should be filled with filename (no path)
' use with 'call switchNotes()'
' 'On Error Resume Next' commented out to spot failed process
' MsgBox used for debug purposes when needed

Dim oTarget As Presentation
Dim oSource As Presentation
Dim i As Integer
'On Error Resume Next
Set oSource = Presentations("mySource.pptx")
Set oTarget = Presentations("myTarget.pptx")
If oSource.Slides.Count <> oTarget.Slides.Count Then Err.Raise -10000000
For i = 1 To oSource.Slides.Count
'MsgBox ("diapo " & i)
oSource.Slides(i).NotesPage.Shapes(2).TextFrame.TextRange.Copy
oTarget.Slides(i).NotesPage.Shapes(2).TextFrame.TextRange.Paste
Next i
End Sub
Finally, as a suggestion, I added this code to an empty presentation (needed to create a module for it) and call it from the immediate window, after I opened the other files and updated the source and target filenames). This way I keep my PPTX files clean and don't need to make them macro-enabled.

Hope it helps
Reply With Quote