Estou com dificuldade em fechar um arquivo já aberto !!
Criei uma macro em Word, que a partir de um formulário trás 3 opções:
1 - Executar relatório A e B
2 - Executar relatório A
3 - Executar relatório B
Até ai tudo bem !!!
Quando executo a opção 1, 2 ou 3 não apresenta problemas, mesmo que os formuláros existam, onde a macro faz testes para verificar se cada formulário existe (no total são 10 formulários) e apresenta a opção de eliminar o formulário.
Caso o formulário não exista, a macro cria os 10 formulários e fica com os mesmos aberto, até que seja executado o comando "SAIR" da aplicação.
O problema que estou encontrando é o seguinte:
Caso já tenha criado os formulários, os mesmos estando aberto e eu ainda dentro da aplicação resolva refazer um determinado formulário, onde eu volte a escolher uma das opções, como eu posso testar se o formulário está aberto e como eu posso faze com que o mesmo seja fechado, para o mesmo ser eliminado logo após o fecho e dar continuidade ao processo.
A macro que executo para fazer o teste de arquivo já existente é:
Sub Duplicado()
Dim MSG1, MSG2, MSG3, Style, Title, Ctxt, RSP
MSG1 = "Ficheiro '" & FichAplica & "' já existe !!"
MSG2 = "'OK' para eliminar o ficheiro e continuar com o processo!"
MSG3 = "'Cancel' para não produzir este relatório e continuar com o processo!"
Style = vbOKCancel + vbExclamation + vbDefaultButton2 ' Define buttons.
Title = "Erro - Ficheiro já existente"
RSP = MsgBox(MSG1 & Chr(13) & " " & Chr(13) & MSG2 & Chr(13) & " " & Chr(13) & MSG3, Style, Title)
If RSP = vbCancel Then ' User chose Yes.
RSPx = "Fim"
Else
' Aqui é onde pretendo utilizar o teste do arquivo já aberto
Kill JaExist
End If
End Sub
Já tentei utilizar o comando :
Windows(" & JaExist & " [Compatibility Mode]").Activate
ActiveDocument.Close
Mas, não resulta !! Não consigo alterar avariável JáExist, devido a mesma estar entre "" e o comando aparentemente não aceita o valor sem as "", para apontar para o arquivo desejado.
Agradeço desde já a sua ajuda.
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Como fechar um arquivo Word já aberto ??
Re: Como fechar um arquivo Word já aberto ??
Colega,
Desculpe a demora. Seria importante saber como os formulários são abertos. De qualquer forma, é possível "varrer" a coleção de documentos que estão abertos naquele momento:
Neste caso, use a variável doc para saber se esta é um dos seus formulários. Se for, o método close funcionará.
Abraços
Desculpe a demora. Seria importante saber como os formulários são abertos. De qualquer forma, é possível "varrer" a coleção de documentos que estão abertos naquele momento:
Código: Selecionar todos
Sub VarreDocumentos()
Dim documentos As String
Dim doc As Document
For Each doc In Application.Documents
documentos = documentos & doc.Name & vbNewLine
Next
MsgBox documentos
End Sub
Abraços