Ir para conteúdo
Fórum Script Brasil
  • 0

Código não guarda variável após o comando "Call"


ECJ69SSS

Pergunta

Boa Tarde,

Tenho o código já escrito e em funcionamento em script macro no Word e estou tentando passar para o VB.Net, para tentar aprender alguma coisa no VB.Net.

Adianto que não sou nenhum expert e sim um aprendiz.

A macro em Word gera relatórios de Status diários em Word a partir de um layout, cria PDFs, faz cópia dos PDFs para Sharepoint e move os relatórios e PDFs gerados para as pastas especificas (STATUS_AAAAMMDD/WORDSTATUS_AAAAMMDD/WORD/PDF) num determinado diretório.

Estou reescrevendo o script e testando por parte.

1º Problema encontrado: Ao abrir o arquivo Word de layout, onde apresentava erro na opção em vermelho como função não declarada.

            objword.documents.Open(FileName:=Dir2_fch & "\" & status_fch(i) _
             , ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False _
                         , PasswordDocument:="", PasswordTemplate:="", Revert:=False _
                         , WritePasswordDocument:="", WritePasswordTemplate:="", Format = wdOpenFormatAuto, XMLTransform:="")

nota: para contornar tive que retirar a opção "Format = wdOpenFormatAuto".

2º Problema encontrado: Ao tentar gravar o novo arquivo em Word, onde apresenta o erro como função não foi declarada. 

             objword.ActiveDocument.SaveAs(FileName:=status_fchx,
                      FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="",
                      AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False,
                       EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
                      :=False, SaveAsAOCELetter:=False)

nota: para contornar tive que retirar a opção "FileFormat:=wdFormatXMLDocument".

3º Problema encontrado: Quando faço a chamada a uma determinada rotina por "Call" as variáveis vazias não retornam com os valores do resultado da rotina.

Call Testa_Existe_Status(STAT_X, x_stat, status_fchx, salta_loop, Dir1_fch, status_i)

Seguem em anexo os problemas apresentados.

Como deverei proceder, para que os resultados da rotina me sejam retornados. E como devo declarar as funções "wdOpenFormatAuto" e "wdFormatXMLDocument

Desde já, Agradeço qualquer ajuda

 

Abços,

 

Variável vazia.jpg

FileFormat_erro2.jpg

Editado por ECJ69SSS
correção.
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tanto wdOpenFormatAuto quanto wdFormatXMLDocument vem de enumerações que você não terá se não referenciar o objeto do Word nas propriedades do projeto. Caso tenha referenciado, você deve precisar colocar seus nomes completos...
 

Microsoft.Office.Interop.Word.WdOpenFormat.wdOpenFormatAuto
Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXML

Ou colocar um Imports no topo:

Imports Microsoft.Office.Interop.Word

Ou simplesmente trocar por seus respectivos valores (0 e 11), conforme você pode consultar aqui: https://msdn.microsoft.com/en-us/library/office/aa211923(v=office.11).aspx

Quanto ao terceiro problema, verifique se o parâmetro está mesmo como ByRef (por referência), pois só assim ele retornará o valor.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
Em 13/07/2016 at 03:32, Graymalkin disse:

Tanto wdOpenFormatAuto quanto wdFormatXMLDocument vem de enumerações que você não terá se não referenciar o objeto do Word nas propriedades do projeto. Caso tenha referenciado, você deve precisar colocar seus nomes completos...
 


Microsoft.Office.Interop.Word.WdOpenFormat.wdOpenFormatAuto
Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXML

Ou colocar um Imports no topo:


Imports Microsoft.Office.Interop.Word

Ou simplesmente trocar por seus respectivos valores (0 e 11), conforme você pode consultar aqui: https://msdn.microsoft.com/en-us/library/office/aa211923(v=office.11).aspx

Quanto ao terceiro problema, verifique se o parâmetro está mesmo como ByRef (por referência), pois só assim ele retornará o valor.

Abraços!

Graymalkin,

Obrigado pelas dicas.

Vou proceder com as alterações!

Abços,

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...