Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Como fechar um arquivo Word já aberto ??

Dúvidas gerais sobre Word
Ecj69
Colaborador
Colaborador
Mensagens: 16
Registrado em: Ter Out 26, 2010 9:43 am

Como fechar um arquivo Word já aberto ??

Mensagem por Ecj69 »

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.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
webmaster
Administrador
Mensagens: 3114
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Como fechar um arquivo Word já aberto ??

Mensagem por webmaster »

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:

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


Responder