Passagem procedimento argumentos no Visual Basic for Applications

Traduções de Artigos Traduções de Artigos
Artigo: 164058 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Quando utiliza o Visual Basic for Applications, pode passar argumentos (valores) da seguinte forma:

  • A partir de um procedimento para outro procedimento no mesmo módulo.
  • A partir de um procedimento de um módulo para outro procedimento num módulo diferente no mesmo projecto.
  • A partir de um procedimento num projecto para outro procedimento num projecto diferente.
Este artigo inclui do Visual Basic para aplicações de exemplos de macros que passam argumentos das seguintes formas.

Mais Informação

A Microsoft fornece exemplos do Visual Basic para aplicações procedimentos apenas, para fins sem garantia expressa ou implícita, incluindo, sem limitação as garantias implícitas de comercialização e/ou adequação a um fim específico. Os procedimentos do Visual Basic neste artigo são fornecidos 'como' e a Microsoft não garante que podem ser utilizados em todas as situações. Enquanto profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de uma determinada macro, não modificarão estes exemplos para fornecer funcionalidades adicionais nem ajudarão a criar macros para cumprir necessidades específicas. Se dispõe de limitada experiência de programação, poderá consultar um dos fornecedores de soluções Microsoft. Fornecedores de solução oferecem uma vasta gama de serviços baseados em taxas, incluindo a criação de macros personalizadas. Para obter mais informações sobre fornecedores de soluções Microsoft, contacte o serviço de informações Microsoft cliente através do número (800) 426-9400.

Pode criar vários módulos para um único Visual Basic for Applications projecto. Num módulo único pode criar vários procedimentos (macros, procedimentos de evento, subrotinas e funções). Utilize um dos seguintes métodos para passar argumentos entre vários procedimentos, módulos e projectos.

Método 1: Passar argumentos entre procedimentos no Project mesmo

NOTA: O seguinte Visual Basic for Applications exemplos podem existir em módulos diferentes. Os exemplos funcionam sem modificações, se o seguinte é verdadeiro:

  • Nenhum outro procedimento com o mesmo nome existe num módulo diferente.
  • Os módulos existir no mesmo projecto.
O procedimento CallReverseTextFunction Módulo1 passa um argumento de cadeia para a função ReverseText Module2.

Em Module1 para Projeto1, escreva a seguinte macro:
   Sub CallReverseTextFunction()
      MsgBox ReverseText("Hello")
   End Sub
				
Module2 In para Projeto1, escreva a seguinte macro:
   Function ReverseText(sItem As String)
      ' This function reverses text.
      Dim iCount As Integer
      For iCount = Len(sItem) To 1 Step -1
         ReverseText = ReverseText & Mid$(sItem, iCount, 1)
      Next
   End Function
				

Método 2: Passar argumentos para procedimentos com o mesmo nome

Um projecto Visual Basic for Applications, pode criar um ou vários módulos. Cada módulo é possível criar um procedimento que tem o mesmo nome. Por exemplo, um projecto denominado MyProject pode conter um módulo com um procedimento chamado MinhaFunção e outro módulo que contém um procedimento chamado MinhaFunção:
             ----- MyProject -----
            |                     |
      -- Module1 --            Module2
     |             |              |
 MyMacro      MyFunction     MyFunction
				
para chamar e passar argumentos para um procedimento quando existe outro procedimento com o mesmo nome no outro módulo, incluir o nome do módulo para que o programa chama o procedimento correcto.

O seguinte Visual Basic for Applications exemplos, existem dois procedimentos chamados MinhaFunção. Existir em Module1, o outro existe em Module2. Neste exemplo, o programa chama MinhaFunção Module2.

Para chamar o procedimento em Module1, utilize a seguinte macro:
   Sub CallingProcedure()
      ' To call a procedure of the same name
      ' in another module, precede the procedure
      ' name with the module name.
      MsgBox Module2.MyFunction("MyFunction")
   End Sub
				
em Module1, escreva a seguinte macro:
   Function MyFunction(sItem As String)
      MyFunction = "Module 1, " & sItem
   End Function
				
no módulo 2, escreva a seguinte macro:
   Function MyFunction(sItem As String)
      MyFunction = "Module 2, " & sItem
   End Function
				

Método 3: Passar argumentos entre procedimentos em diferentes projectos

Para passar um argumento para um procedimento que existe num projecto diferente, primeiro adicione uma referência a esse projecto. Pode adicionar uma referência de projecto utilizando comandos de menu no Visual Basic Editor, ou adiciona uma referência utilizando o Visual Basic para aplicações de comandos.

Para adicionar uma referência utilizando o menu Ferramentas, utilize os seguintes passos:

  1. No menu Ferramentas, clique em References para apresentar a caixa de diálogo References.

    A caixa de diálogo References mostra todas as bibliotecas de objectos e projectos registados com o sistema operativo.
  2. Deslocar-se para baixo para ver o projecto que pretende referenciar. Se o projecto de modelo ou documento não aparecer na lista, clique em Procurar para procurar ficheiros *.dot ou *.doc.

    Referências com caixas de verificação que estão seleccionadas são utilizadas pelo seu projecto; não são utilizados os itens com caixas de verificação que estão desmarcadas. No entanto, pode adicioná-los.
  3. A referência de projecto na caixa referências disponíveis e clique em OK.

    Se fez não guardar o projecto, será apresentado da seguinte forma
    Não GUARDADAS: <projectname>
    e não é possível criar uma referência à mesma.
Adicionar uma referência utilizando o Visual Basic for Applications comandos:

Porque o Visual Basic for Applications precompiles a macro antes de executá-lo, poderá ocorrer o seguinte erro:
"Erro de compilação: sub ou Function não definido"
Este comportamento ocorre quando se verificam as seguintes condições:

  • A macro incluir um comando para adicionar uma referência ao projecto. - e -

  • A chamada para o procedimento no projecto que está a referenciar existe na mesma macro.
Por este motivo, coloque os comandos para adicionar uma referência de uma macro e, em seguida, adicionar a chamada de procedimento referenciado na outra macro.

No exemplo seguinte, a macro AddProjectReference adiciona a referência de projecto e, em seguida, chama MinhaMacro. MinhaMacro, em seguida, chama o procedimento no projecto referenciado.

NOTA: Execução da macro tem de começar na macro AddProjectReference.

Para criar as macros, escreva o seguinte código num módulo:
   Sub AddProjectReference()
      ' Add the project reference.
      VBE.ActiveVBProject.References.AddFromFile _
      ("C:\Program Files\Microsoft Office\Templates\MyRefProject.dot")

      ' Run the macro that makes the call into the
      ' referenced project.
      Call MyMacro
   End Sub

   Sub MyMacro()
      Call MyRefProjectProcedure
   End Sub
				
para passar argumentos para o referido procedimento, adicione os argumentos. Por exemplo, escreva o seguinte argumento: no exemplo seguinte:
Sub MyMacro()
   Call MyRefProjectProcedure ("Hello")
End Sub
				
para obter mais informações sobre como adicionar referências, faça clique sobre o Assistente do Office no Visual Basic para aplicações Editor, escreva Adicionar referências , clique em Procurar e, em seguida, clique para visualizar "Verificar ou adicionar uma referência de biblioteca de objectos".

NOTA: Se o assistente estiver oculto, clique no botão Assistente do Office na barra de ferramentas padrão. Se o Visual Basic for Applications ajuda não estiver instalado no computador, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
120802Office: Como adicionar ou remover um único Office programa ou componente

Propriedades

Artigo: 164058 - Última revisão: 6 de fevereiro de 2014 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Word 97 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Excel 97 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbcode kbhowto kbprogramming kbusage KB164058 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 164058

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com