Guardar documento de Word incrustado como PDF

GUIÓN

Un documento de Word está incrustado en el archivo de Excel 2011. Necesito guardarlo como un pdf.

Si hubiera sido Excel 2010, no habría sido un problema, ya que MS-Office en Win Pcs es compatible con la automatización OLE.

¿Qué he intentado?

Este es el código que probé en Excel 2010, que funciona.

<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>

Obviamente no puedo usar lo mismo en MAC. No es que no haya probado esto en MAC ... Lo hice: - / (La naturaleza humana básica supongo?). Falló como se esperaba. :)

Para Excel 2011, probé esto. Funciona pero no crea un pdf ni da ningún mensaje de error. Intenté depurarlo pero no me alegro.

<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>

Creo que esto también se puede hacer usando AppleScript. Así que probé con Applescript también. Aquí estoy tratando de convertir un documento de Word directamente a pdf. Si consigo esta parte, puedo desviarme un poco de mi código :)

<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>

Sin embargo me sale el error de ejecución enMacScript(scriptToRun) así que estoy seguro de que mi Applescript está fallando.

INSTANTÁNEA

Error de manzana

PREGUNTA

¿Cómo puedo guardar el documento Word incrustado en Excel 2011? Estoy abierto a VBA y Applescript.

Respuestas a la pregunta(1)

Su respuesta a la pregunta