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
Respuesta de Mauricio Felix Cano Rosales
1