ID do artigo: 108519 - Última revisão: terça-feira, 10 de outubro de 2006 - Revisão: 2.2

Sub-rotinas e macros do Visual Basic em execução

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 | Recolher tudo

Sumário

Nas versões do Microsoft Excel 5.0 e posteriores, você pode executar Microsoft Visual Basic para aplicativos sub procedimentos e as macros do Microsoft Excel versão 4.0 de um procedimento do Visual Basic usando os métodos Application.Run e Application.ExecuteExcel4Macro. Você também pode executar procedimentos Sub do Visual Basic com o método de chamada ou digitando o nome de um procedimento em uma linha por si só.

Este artigo ilustra vários métodos que você pode usar para executar procedimentos Sub e macros do Microsoft Excel versão 4.0 a partir do Visual Basic no Microsoft Excel.

Mais Informações

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades.

Para usar o método Application.Run

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

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

Para usar o método Application.ExecuteExcel4Macro

Você também pode usar 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 é um pouco diferente. Para usar Application.ExecuteExcel4Macro para executar uma macro ou procedimento Sub, você também deve incluir a função Run() do Microsoft Excel versão 4.0, como nos exemplos a seguir:
   Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
				
- ou -
   Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
				
Observe que, quando você usa Application.ExecuteExcel4Macro, você deve usar entre aspas. Por exemplo, para usar a função Run(), você deve colocar o nome do argumento entre aspas:
   RUN("TestXLM")
				
como a seqüência inteira também deve ser colocada entre aspas, quando você adiciona aspas a fora da seqüência de caracteres, você também deve adicionar uma marca de cotação adicional adjacente a cada aspas dentro da seqüência. A seqüência de caracteres resultante é o seguinte:
   "RUN(""TestXLM"")"
				
Application.ExecuteExcel4Macro O comando que usa uma variável dentro da função Run() é mais complexo do que o método Application.Run equivalente. Para o comando a ser avaliada corretamente, a seqüência de macro deve ser inserida como:
   "RUN(""" & MacroToRun & """)"
				
este comando é avaliado como:
   RUN("" & MacroToRun & "")
				
que é um comando de macro válido do Microsoft Excel 4.0.

Para usar o método de chamada

O método de chamada pode ser usado 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, você usaria esse método:
   Call TestVBSub
				
Observe que você não pode passar um nome de variável para o método de chamada. Por exemplo, se você tiver a variável "SubToRun" definida como "TestVBSub", não é possível executar o procedimento TestVBSub Sub com o seguinte:
   Call SubToRun
				

Para executar um procedimento Sub usando apenas seu nome

Você também pode executar um procedimento Sub Visual Basic digitando seu nome em uma linha por si só. Por exemplo, se desejar que o procedimento Sub para executar a sub-rotina TestVBSub, você digitaria
   TestVBSub
				
em uma linha por si só. Quando essa linha na sub-rotina é executada, ele será executado a sub-rotina TestVBSub.

Procedimentos do Visual Basic de exemplo

Para criar procedimentos Sub seis que ilustram os métodos mais comuns que você pode usar para executar um procedimento Sub do Visual Basic ou macro do Microsoft Excel versão 4.0 a partir de outro procedimento do Visual Basic, execute essas etapas:

  1. Em uma nova pasta de trabalho, insira uma folha de macro Microsoft Excel 4.0 chamada 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, pressione ALT+F11 para ativar o Editor do Visual Basic. Em seguida, clique em Módulo no menu Inserir.
  2. Na folha de macro, insira a macro a seguir:
    A1: TestXLM
    A2: = alerta ("TestXLM funciona!")
    A3: =RETURN()
    Esta macro exibirá uma caixa de alerta.
  3. Na folha de macro, selecione a célula.
  4. No menu Inserir, aponte para nome e, em seguida, clique em definir.
  5. Verifique se as informações a seguir aparecem na caixa de diálogo Definir nome:

    • A caixa de nomes na pasta de trabalho contém o nome TestXLM.
    • A caixa refere-se para contém a referência = Macro1! $ A $ 1.
    • A opção de comando está selecionada em macro.
    Quando as configurações são como especificado acima, clique em OK definir o nome da macro.
  6. No Módulo1, digite 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 você executa Test1, Test2, Test3 ou Test4, duas caixas de alertas aparecerá com mensagens "TestVBSub funciona!" e "TestXLM funciona!" Quando você 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 for 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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 ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.