Jump to content
Fórum Script Brasil
  • 0

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


ECJ69SSS
 Share

Question

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

Edited by ECJ69SSS
correção.
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...