Artigo: 108519 - Última revisão: terça-feira, 10 de Outubro de 2006 - Revisão: 2.2

Em execução subrotinas e macros do Visual Basic

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

No Microsoft Excel versões 5.0 e posteriores, pode executar para procedimentos Sub de aplicações e as macros do Microsoft Excel versão 4.0 do Microsoft Visual Basic a partir de um procedimento do Visual Basic utilizando os métodos Application.Run e Application.ExecuteExcel4Macro. Também pode executar procedimentos Sub do Visual Basic com o método de chamada ou introduzindo o nome de um procedimento de uma linha por si próprio.

Este artigo mostra vários métodos que pode utilizar para executar procedimentos Sub e as macros do Microsoft Excel versão 4.0 do Visual Basic no Microsoft Excel.

Mais Informação

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Utilizar o método Application.Run

Pode utilizar o método Application.Run para executar procedimentos Sub do Visual Basic ou as macros do Microsoft Excel versão 4.0 a partir de outros procedimentos do Visual Basic. O método Application.Run requer um argumento com nome: o nome da macro ou procedimento a ser executado. (No entanto, outros argumentos opcionais podem também ser incluídos.) Este nome pode ser uma cadeia de texto (por exemplo, "TestXLM") ou pode ser uma variável igual ao nome da macro.

Por exemplo, para executar uma macro do Microsoft Excel versão 4.0 denominada TestXLM, pode utilizar este método:
   Application.Run ("TestXLM")
				
se tiver a variável "MacroToRun" definida como "TestXLM", pode utilizar este método:
Application.Run (MacroToRun)

Utilizar o método Application.ExecuteExcel4Macro

Também pode utilizar o método Application.ExecuteExcel4Macro para executar as macros do Microsoft Excel versão 4.0 ou outros procedimentos Sub do Visual Basic, mas a sintaxe é ligeiramente diferente. Para utilizar Application.ExecuteExcel4Macro para executar uma macro ou procedimento Sub, também deverá incluir a função RUN() do Microsoft Excel versão 4.0, como nos exemplos seguintes:
   Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
				
- ou -
   Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
				
Tenha em atenção que quando utiliza Application.ExecuteExcel4Macro, terá de utilizar aspas. Por exemplo, para utilizar a função RUN(), tem de escrever o nome do argumento entre aspas:
   RUN("TestXLM")
				
uma vez que a totalidade da cadeia tem também de estar entre aspas, quando adiciona aspas a fora da cadeia, também tem de adicionar uma marca de aspas adicional adjacente a cada aspa na cadeia. A cadeia resultante é o seguinte:
   "RUN(""TestXLM"")"
				
Application.ExecuteExcel4Macro O comando que utiliza uma variável dentro de função RUN() é mais complexo do que o método Application.Run equivalente. Para o comando a ser avaliada correctamente, a cadeia de macro deve ser introduzida como:
   "RUN(""" & MacroToRun & """)"
				
este comando é avaliado como:
   RUN("" & MacroToRun & "")
				
que é um comando de macro válido do Microsoft Excel versão 4.0.

Para utilizar o método de chamada

O método de chamada pode ser utilizado para executar procedimentos Sub do Visual Basic, mas não as macros do Microsoft Excel versão 4.0. Por exemplo, para executar o procedimento Sub TestVBSub, utilizaria este método:
   Call TestVBSub
				
Note que não é possível passar um nome de variável para o método de chamada. Por exemplo, se tiver a variável "SubToRun" definida como "TestVBSub", não pode executar o procedimento TestVBSub Sub com o seguinte:
   Call SubToRun
				

Para executar um procedimento Sub utilizando apenas a nome

Também pode executar um procedimento do Visual Basic introduzindo o nome numa linha por si próprio. Por exemplo, se pretender que o procedimento para executar a subrotina TestVBSub, teria de introduzir
   TestVBSub
				
numa linha por si próprio. Quando essa linha a subrotina é executada, será executado a subrotina TestVBSub.

Exemplo do Visual Basic procedimentos

Para criar as seis procedimentos Sub que ilustram os métodos mais comuns que pode utilizar para executar um procedimento do Visual Basic ou o Microsoft Excel versão 4.0 macro a partir de outro procedimento do Visual Basic, siga estes passos:

  1. Inserir um novo livro, uma folha de macro do Microsoft Excel 4.0 denominada Macro1 e um módulo do Visual Basic chamado Module1.

    Para inserir um módulo do Visual Basic no Microsoft Excel 97 ou Microsoft Excel 98, prima ALT+F11 para activar o Editor do Visual Basic. Em seguida, clique em Módulo no menu ' Inserir '.
  2. Na folha de macro, introduza a seguinte macro:
    A1: TestXLM
    A2: = alerta ("TestXLM funciona!")
    A3: =RETURN()
    Esta macro apresenta uma caixa de alerta.
  3. Na folha de macro, seleccione a célula A1.
  4. No menu Inserir, aponte para nome e, em seguida, clique em definir.
  5. Verifique se as seguintes informações aparecem na caixa de diálogo Definir nome:

    • A caixa de nomes no livro contém o nome TestXLM.
    • A caixa refere-se para contém a referência = Macro1! $ A $ 1.
    • A opção de comando está seleccionada em macros.
    Quando as definições são como especificada acima, clique em OK definir o nome da macro.
  6. Em Module1, introduza os seguintes procedimentos Sub:
          Option Explicit
    
          'The TestVBSub subroutine displays a message box: it is the Visual
          'Basic equivalent of the TestXLM macro shown above.
    
          Sub TestVBSub()
              MsgBox "TestVBSub works!"             'Displays a message box.
          End Sub
    
          'The Test1 Sub procedure makes use of the Application.Run method with
          'hard-coded macro/subroutine names.
    
          Sub Test1()
              Application.Run ("TestVBSub")
              Application.Run ("TestXLM")
          End Sub
    
          'The Test2 Sub procedure makes use of the Application.Run method with
          'variable macro/Sub procedure names.
    
          Sub Test2()
              Dim SubToRun As String, MacroToRun As String
              SubToRun = "TestVBSub"
              MacroToRun = "TestXLM"
              Application.Run (SubToRun)
              Application.Run (MacroToRun)
          End Sub
    
          'The Test3 Sub procedure makes use of the  
          'Application.ExecuteExcel4Macro
          'method with hard-coded macro/Sub procedure names.
    
          Sub Test3()
              'Note the extra quotation marks which are contained within the
              'RUN statements. These are required in order for the command to
              'evaluate properly.
              Application.ExecuteExcel4Macro "RUN(""TestVBSub"")"
              Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
          End Sub
    
          'The Test4 Sub procedure makes use of the 
          'Application.ExecuteExcel4Macro
          'method with variable macro/Sub procedure names.
    
          Sub Test4()
              Dim SubToRun As String, MacroToRun As String
              SubToRun = "TestVBSub"
              MacroToRun = "TestXLM"
              'Note the extra quotation marks which are contained within the
              'RUN statements. These are required in order for the command to
              'evaluate properly.
              Application.ExecuteExcel4Macro "RUN(""" & SubToRun & """)"
              Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
          End Sub
    
          'The Test5 Sub procedure uses the Call method with hard-coded
          'Sub procedure names.
    
          Sub Test5()
              Call TestVBSub
          End Sub
    
          'The Test6 Sub procedure runs the TestVBSub subroutine because its 
          'name is entered on a line by itself.
    
          Sub Test6()
              TestVBSub
          End Sub
    						
Quando executa Teste1, Teste2, Test3 ou Test4, duas caixas de alertas serão apresentado com as mensagens "TestVBSub funciona!" e "TestXLM funciona!" Quando executa Test5 ou Test6, uma caixa de alerta aparecerá com a mensagem "TestVBSub funciona!"

A informação contida neste artigo aplica-se a:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 98 para Macintosh
Palavras-chave: 
kbmt kbdtacode kbhowto kbprogramming KB108519 KbMtpt
Tradução automáticaTraduçã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: 108519  (http://support.microsoft.com/kb/108519/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.