Издатель VBA для сохранения в виде изображения
Я разработал следующий код, чтобы сохранить все файлы издателя в текущем каталоге в виде изображения, однако, кажется, его просмотр занимает много времени. Кроме того, я не могу найти способ исключить текущий файл, из которого выполняется макрос. У кого-нибудь есть идеи?
Sub Looptest()
Dim MyFile As String, Sep As String
Dim objPub As Object
Set objPub = CreateObject("Publisher.Application")
Dim folder As String
folder = CurDir()
If Len(Dir(folder & "\" & "jpg", vbDirectory)) = 0 Then
MkDir (folder & "\" & "jpg")
End If
Sep = Application.PathSeparator
If Sep = "\" Then
' Windows platform search syntax.
MyFile = Dir(CurDir() & Sep & "*.pub")
Else
MyFile = Dir("", MacID("XLS5"))
End If
' Starts the loop, which will continue until there are no more files
' found.
Do While MyFile <> ""
'If MyFile = "macro.pub" Then
'GoTo ContinueLoop
'End If
Dim pubApp As Publisher.Application
Dim pubDoc As Publisher.Document
Dim folder2 As String
folder2 = CurDir() & Sep & MyFile
Set pubApp = New Publisher.Application
pubApp.Open folder2
'pubApp.ActiveWindow.Visible = True
num = folder2
pubApp.ActiveDocument.Pages(1).SaveAsPicture CurDir() & Sep & "jpg" & "\" & MyFile & ".jpg"
pubApp.Quit
MyFile = Dir()
'ContinueLoop:
Loop
End Sub
Я прокомментировал мою попытку пропустить файл (в данном случае он называется Macro.pub), так как он, казалось, просто завис и никуда не денется.
Любая помощь будет принята с благодарностью!
-Cr1kk0
1 ответ
Решение
Предполагая, что ваш код верен во всех остальных отношениях, это может помочь
If MyFile = ActiveDocument.FullName Then
GoTo ContinueLoop
End If
Я предполагаю, что ваша проверка не удалась, потому что вы сравниваете короткое имя файла с полным именем файла. (Вы также можете просто жестко закодировать весь путь к macro.pub)