none
VBA= Fechar janela no w2003 ou w2007 RRS feed

  • Pergunta

  •  

    Tô chegando por aqui, meio perdido....

    Tentei pesquisar, mas não consegui resposta nos postes antigos.

     

    Tenho o seguinte problema. Preciso pedir que o Word feche uma janela. Já fiz isso no Word 2003. Também no 2007

     

    'para o 2003 colocar a seguinte linha
       Windows("NomeArquivo").Close

    'para o 2007 colocar a seguinte linha
    Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close

    Isto funciona sem problemas. Preciso, porém, de uma maneira que o VB identifique automaticamaente se o documento está aberto no Word  2003 ou no Word 2007 e faça a escolha correta do comando para fechar a janela. Imagino que isso seja possível com o IF. ou algo parecido. Algo que ficasse mais ou menos assim:

     

    ......................................................................

    IF Word 2003

    execute  Windows("NomeArquivo").Close

    IF Word 2007

    execute Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close

    ............................................................

    Será que tem um jeito de fazer isso funcionar no VB.

    Fico no aguardo

    Francisco

     

     

    terça-feira, 12 de fevereiro de 2008 02:40

Respostas

  •  Francisco2008 wrote:

     

    Tô chegando por aqui, meio perdido....

    Tentei pesquisar, mas não consegui resposta nos postes antigos.

     

    Tenho o seguinte problema. Preciso pedir que o Word feche uma janela. Já fiz isso no Word 2003. Também no 2007

     

    'para o 2003 colocar a seguinte linha
       Windows("NomeArquivo").Close

    'para o 2007 colocar a seguinte linha
    Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close

    Isto funciona sem problemas. Preciso, porém, de uma maneira que o VB identifique automaticamaente se o documento está aberto no Word  2003 ou no Word 2007 e faça a escolha correta do comando para fechar a janela. Imagino que isso seja possível com o IF. ou algo parecido. Algo que ficasse mais ou menos assim:

     

    ......................................................................

    IF Word 2003

    execute  Windows("NomeArquivo").Close

    IF Word 2007

    execute Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close

    ............................................................

    Será que tem um jeito de fazer isso funcionar no VB.

    Fico no aguardo

    Francisco

     

     

     

    Francisco,

    O trecho que vc quer verificar ficaria assim:

     

    Code Snippet

    ......

    If Application.Version = "12.0" Then 'Testa se a versão do office é a 2007

    Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close 'Executa se for a versão 2007

    Else

    Windows("NomeArquivo").Close 'Executa se a versão for anterior à 2007

    End If

    ....

     

     

    [  ]s

    terça-feira, 12 de fevereiro de 2008 11:40

Todas as Respostas

  •  Francisco2008 wrote:

     

    Tô chegando por aqui, meio perdido....

    Tentei pesquisar, mas não consegui resposta nos postes antigos.

     

    Tenho o seguinte problema. Preciso pedir que o Word feche uma janela. Já fiz isso no Word 2003. Também no 2007

     

    'para o 2003 colocar a seguinte linha
       Windows("NomeArquivo").Close

    'para o 2007 colocar a seguinte linha
    Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close

    Isto funciona sem problemas. Preciso, porém, de uma maneira que o VB identifique automaticamaente se o documento está aberto no Word  2003 ou no Word 2007 e faça a escolha correta do comando para fechar a janela. Imagino que isso seja possível com o IF. ou algo parecido. Algo que ficasse mais ou menos assim:

     

    ......................................................................

    IF Word 2003

    execute  Windows("NomeArquivo").Close

    IF Word 2007

    execute Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close

    ............................................................

    Será que tem um jeito de fazer isso funcionar no VB.

    Fico no aguardo

    Francisco

     

     

     

    Francisco,

    O trecho que vc quer verificar ficaria assim:

     

    Code Snippet

    ......

    If Application.Version = "12.0" Then 'Testa se a versão do office é a 2007

    Windows("NomeArquivo[Modo de Compatibilidade]").Activate
        ActiveWindow.Close 'Executa se for a versão 2007

    Else

    Windows("NomeArquivo").Close 'Executa se a versão for anterior à 2007

    End If

    ....

     

     

    [  ]s

    terça-feira, 12 de fevereiro de 2008 11:40
  •  

    Valeu, Adilson,

    Já testei e funcionou corretamente. Agradeço muito a ajuda

    Abraços

    Francisco

    quarta-feira, 13 de fevereiro de 2008 00:52
  • Não há de quê.

    Por favor, marque a resposta definitiva para que o post fique como solucionado.

    Abs

    quarta-feira, 13 de fevereiro de 2008 08:52