There is not much info out there on VBA programming for Publisher (I had a hard time finding it anyway), and I needed to export each page in a publisher file as an individual graphic (jpg or png). Although you can do a Save As and save each page one at a time, that becomes a little tedious, so I wrote this macro to export all the pages individually as a graphics file.
Hope this is helpful to somebody!
Sub Export_All_Pages_As_Graphic() 'Ask whether to proceed or not BtnPress = MsgBox("Save all pages as individual pictures?", vbOKCancel) 'If they pressed OK then proceed, otherwise do nothing. If BtnPress = 1 Then 'Make sure two-page spread is set to FALSE, otherwise it might export the two pages as one picture, instead of individually. 'NOTE: This may not be necessary, but just in case! ActiveDocument.ViewTwoPageSpread = False 'How many total pages in document? TotalPages = ActiveDocument.Pages.Count 'Loop thru all pages one at a time For PgCnt = 1 To TotalPages 'When you convert integer to string it adds a space in front, so need to remove the leading space PgNumber = Str(PgCnt) PgLen = Len(PgNumber) PgNumber = Right(PgNumber, PgLen - 1) 'All names are three characters with leading zeros like 002.png 014.png 123.png If PgCnt < 10 Then PgFilename = "00" + PgNumber ElseIf PgCnt < 100 Then PgFilename = "0" + PgNumber Else PgFilename = PgNumber End If 'Add the appropriate fileformat extension. You can use .png and .jpg for sure. There may be others, but did not test any. PgFilename = PgFilename + ".png" 'Save the page ActiveDocument.Pages(PgCnt).SaveAsPicture (PgFilename) Next PgCnt 'Tell them you are done and how many pages were saved MsgBox "DONE! Saved" + Str(TotalPages) + " pages." End If End Sub



Reply With Quote

