Macro excel cerrar objeto word.

Tengo una macro desde excel que abre plantilla word, guarda con otro nombre como documento combina correspondencia, guarda como pdf, y cierra, pero me deja el objeto abierto no puedo cerrarlo.

Pasos de la macro.

1- Crea objeto word

2-Activa objeto word

2- Abre plantilla Word

3. Gurda plantilla como documento otro nombre

4. Acciona una macro guardada en word.

          4.1 Combina correspondencia.

          4.2 Genera documentos combinados

          4.3 Guarda en pdf 

          4.3 Cierra documento.

5- Elimina el documento guardado con otro nombre.

El problema que al cerrar los documentos ya combinados, me deja el objeto de World abierto, me podrían ayudar dejo mi código.

Sub AbrirCarta1()
Dim fechacorte, Fecha As Date
On Error Resume Next
Dim MiHoja As Object
ruta = ThisWorkbook.Path
patharch = ThisWorkbook.Path & "\PE INICIO 2015.dotm"
Set MiHoja = CreateObject("Word.Application")
FINALNAME = PRUEBA
With MiHoja
    .Visible = True
    .Documents.Open (patharch)
    .ActiveDocument.SaveAs ruta & "\" & FINALNAME & ".docx"
    .Activate
    .Run "peinicio"
End With
MiHoja.Close: Set MiHoja = Nothing
MiHoja.Quit: Set MiHoja = Nothing
Kill ruta & "\" & FINALNAME & ".docx"
Set patharch = Nothing
Set NOM = Nothing
Set CONS = Nothing
Set FINALNAME = Nothing 'MsgBox "proceso terminado"
End Sub
CODIGO WORD
Sub peinicio()
Application.ScreenUpdating = False
direc1 = ActiveDocument.Path
direc = ActiveDocument.Path & "\Base datos.xlsm"
   ActiveDocument.MailMerge.OpenDataSource Name:=direc, _
        ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=direc;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=35;Jet OLED" _
        , SQLStatement:="SELECT * FROM `'PE INICIO$'`", SQLStatement1:="", _
        SubType:=wdMergeSubTypeAccess
         ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
        NAMEAR = ActiveDocument.Name
        CONTA = Len(NAMEAR)
         With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = 1
            .LastRecord = 1
        End With
        .Execute Pause:=False
    End With
    Windows(NAMEAR).Close False
    PDF = Left(NAMEAR, CONTA - 5)
 ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        direc1 & "\" & PDF & ".pdf" _
        , ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=False
    ChangeFileOpenDirectory direc1 & "\"
ActiveWindow.Close False
Application.ScreenUpdating = True

1 Respuesta

Respuesta
1

He conseguido cerrar el libro.

  Windows(nombre del archivo).Close False

Application.ScreenUpdating = False
direc1 = ActiveDocument.Path
direc = ActiveDocument.Path & "\BASE ACTAS ENTREGA RECEPCCION.xlsm"
  ActiveDocument.MailMerge.OpenDataSource Name:=direc, _
        ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:= _
        "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=direc;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=35;Jet OL" _
        , SQLStatement:="SELECT * FROM `ENL7K$`", SQLStatement1:="", SubType:= _
        wdMergeSubTypeAccess
         ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle
         NAMEAR = ActiveDocument.Name
         CONTA = Len(NAMEAR)
         With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = 1
            .LastRecord = 1
        End With
        .Execute Pause:=False
    End With
    Windows(NAMEAR).Close False
     PDF = Left(NAMEAR, 16)
     VER = Mid(NAMEAR, 16, 3)
    FEC = Format(Date, "DDMMYY")
ChangeFileOpenDirectory direc1 & "\ACTAS\"
    ActiveDocument.SaveAs2 FileName:=PDF & FEC & VER & ".docx", FileFormat:= _
        wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
        :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
        SaveAsAOCELetter:=False, CompatibilityMode:=15
ActiveWindow.Close False
Application.ScreenUpdating = True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas