Сохранить встроенный Word Doc как PDF
SCENARIO
Документ Word встроен в файл Excel 2011. Мне нужно сохранить его в формате PDF.
Если бы это был Excel 2010, то это не было бы проблемой, поскольку MS-Office в Win Pcs поддерживает OLE-автоматизацию.
WHAT HAVE I TRIED?
Это код, который я попробовал в Excel 2010, который работает.
<code>Option Explicit Sub Sample() Application.ScreenUpdating = False Dim shp As Shape Dim objWord As Object Dim objOLE As OLEObject Set shp = Sheets("Sheet1").Shapes("Object 1") shp.OLEFormat.Activate Set objOLE = shp.OLEFormat.Object Set objWord = objOLE.Object objWord.ExportAsFixedFormat OutputFileName:= _ "C:\Users\Siddharth Rout\Desktop\Sid.pdf", ExportFormat:= _ 17, OpenAfterExport:=True, OptimizeFor:= _ 0, Range:=0, From:=1, To:=1, _ Item:=0, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=0, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False objWord.Application.Quit Set objWord = Nothing Set shp = Nothing Set objOLE = Nothing Application.ScreenUpdating = True End Sub </code>
Очевидно, я не могу использовать то же самое в MAC. Не то чтобы я не пробовал это в MAC ... Я сделал: - / (Basic human nature I guess?). Это не удалось, как ожидалось. :)
Для Excel 2011 я попробовал это. Он работает, но не создает PDF и не выдает никакого сообщения об ошибке. Я пытался отладить его, но без радости.
<code>'~~> Reference set to MS Word Object Library Option Explicit Sub Sample() Dim oWord As Word.Application, oDoc As Word.Document Application.ScreenUpdating = False Sheets("Sheet1").Shapes.Range(Array("Object 1")).Select Selection.Verb Verb:=xlPrimary Set oWord = GetObject(, "word.application") For Each oDoc In oWord.Documents Debug.Print oDoc.FullName & ".pdf" oDoc.SaveAs Filename:=oDoc.FullName & ".pdf", FileFormat:=wdFormatPDF oDoc.Close savechanges:=False Next oDoc oWord.Quit Set oworddoc = Nothing Set oWord = Nothing Application.ScreenUpdating = True End Sub </code>
Я считаю, что это также может быть сделано с помощью AppleScript. Так что я тестировал и с Applescript. Здесь я пытаюсь преобразовать текстовый документ непосредственно в PDF. Если я получу эту часть, то я могу сделать небольшой обход в моем коде :)
<code>Sub tester() Dim scriptToRun As String scriptToRun = "set pdfSavePath to " & Chr(34) & "Users:siddharth:Documents:Sid.pdf" & Chr(34) & Chr(13) scriptToRun = scriptToRun & "set theDocFile to choose file with prompt " & Chr(34) & "Please select a Word document file:" & Chr(34) & Chr(13) scriptToRun = scriptToRun & "tell application " & Chr(34) & "Microsoft Word" & Chr(34) & Chr(13) scriptToRun = scriptToRun & "open theDocFile" & Chr(13) scriptToRun = scriptToRun & "set theActiveDoc to the active document" & Chr(13) scriptToRun = scriptToRun & "save as theActiveDoc file format format PDF file name pdfSavePath" & Chr(13) scriptToRun = scriptToRun & "end tell" & Chr(13) Debug.Print scriptToRun 'Result = MacScript(scriptToRun) 'MsgBox Result End Sub </code>
Однако я получаю ошибку во время выполненияMacScript(scriptToRun)
поэтому я уверен, что мой Applescript не работает.
SNAPSHOT
Ошибка Applescript
QUESTION
Как сохранить встроенное слово doc в Excel 2011? Я открыт для VBA и Applescript.