Como recuperar os nomes de macros de uma pasta de trabalho do Excel usando o Visual Basic 6.0

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: 315731
Sumário
Este artigo passo a passo descreve como usar o Visual Basic 6.0 para recuperar os nomes de macros de uma pasta de trabalho do Excel.

Requisitos

Os seguintes itens descrevem recomendado de hardware, software, infra-estrutura de rede, habilidades e conhecimento e service packs que você precisa:
  • Excel 2000, Excel 2002, Office Excel 2003 ou Office Excel 2007
  • Macros do Excel
  • Visual Basic for Applications

Criar uma pasta de trabalho do Excel com duas macros

  1. Inicie o Excel. Uma nova pasta de trabalho em branco é criada.
  2. Pressione ALT+F11 para iniciar o Editor do Visual Basic.
  3. No Project Explorer, clique duas vezes ThisWorkbook para iniciar o editor de códigos.
  4. Cole o seguinte código para macros simples duas no editor de código:
    Option ExplicitSub Macro_A()    MsgBox "This is Macro A"End SubSub Macro_B()    MsgBox "This is Macro B"End Sub					
  5. Feche o Editor do Visual Basic e retorne ao modo de exibição de planilha.
  6. No Excel 2003 e em versões anteriores do Excel, salve a pasta de trabalho como C:\Abc.xls.

    No Excel 2007, salve pasta da trabalho como um habilitado para macro chamado C:\Abc.xlsm.
  7. Feche a pasta de trabalho e feche o Excel.

Criar um aplicativo Visual Basic para listar as macros a pasta de trabalho

  1. No Visual Basic 6.0, crie um EXE padrão novo projeto.
  2. No menu Project , clique em referências . Na caixa de diálogo referências , selecione as seguintes referências:
    • Microsoft Visual Basic for Applications Extensibility 5.3
    • Para o Microsoft Excel 2000:
      Microsoft Excel 9.0 biblioteca de objetos
    • Para o Microsoft Excel 2002:
      Microsoft Excel 10.0 biblioteca de objetos do
    • Para o Microsoft Office Excel 2003:
      Microsoft Excel biblioteca de objetos do 11.0
    • Para Microsoft Office Excel 2007:
      Biblioteca de objetos do Microsoft Excel 12.0
  3. Clique em OK .
  4. Adicione um botão ao formulário. O botão tiver o padrão nome Command1.
  5. Adicione uma caixa de listagem ao formulário. A caixa de listagem tem o nome padrão Lista1.
  6. Defina um procedimento de manipulador de evento de clique do botão. Use o seguinte código para que este procedimento, para exibir informações sobre as macros são definidos no C:\Abc.xls:
    Private Sub Command1_Click()    ' Declare variables to access the Excel workbook.    Dim objXLApp As Excel.Application    Dim objXLWorkbooks As Excel.Workbooks    Dim objXLABC As Excel.Workbook        ' Declare variables to access the macros in the workbook.    Dim objProject As VBIDE.VBProject    Dim objComponent As VBIDE.VBComponent    Dim objCode As VBIDE.CodeModule        ' Declare other miscellaneous variables.    Dim iLine As Integer    Dim sProcName As String    Dim pk As vbext_ProcKind        ' Open Excel, and open the workbook.    Set objXLApp = New Excel.Application    Set objXLWorkbooks = objXLApp.Workbooks        Set objXLABC = objXLWorkbooks.Open("C:\ABC.XLS")        ' Empty the list box.    List1.Clear        ' Get the project details in the workbook.    Set objProject = objXLABC.VBProject    ' Iterate through each component in the project.    For Each objComponent In objProject.VBComponents        ' Find the code module for the project.        Set objCode = objComponent.CodeModule        ' Scan through the code module, looking for procedures.        iLine = 1        Do While iLine < objCode.CountOfLines            sProcName = objCode.ProcOfLine(iLine, pk)            If sProcName <> "" Then                ' Found a procedure. Display its details, and then skip                 ' to the end of the procedure.                List1.AddItem objComponent.Name & vbTab & sProcName                iLine = iLine + objCode.ProcCountLines(sProcName, pk)            Else                ' This line has no procedure, so go to the next line.                iLine = iLine + 1            End If        Loop        Set objCode = Nothing        Set objComponent = Nothing    Next    Set objProject = Nothing        ' Clean up and exit.    objXLABC.Close    objXLApp.QuitEnd Sub					

Testar o exemplo

  1. Criar e executar o aplicativo.
  2. Clique no botão de comando. A caixa de listagem exibe os nomes de todas as macros e a pasta de trabalho contém, da seguinte maneira:
    ThisWorkbook    Macro_AThisWorkbook    Macro_B					

Solução de problemas

Por causa das provisões de segurança reforçada no Excel 2002, Excel 2003 e Excel 2007, poderá receber a seguinte mensagem de erro do programa do Visual Basic quando você usa o Excel 2002, Excel 2003 ou Excel 2007:
Acesso programático ao projeto do Visual Basic não é confiável.
Para obter mais informações sobre esse problema e como resolvê-lo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
282830PROBLEMA: Programação acesso ao projeto Office XP VBA negado
Referências
Para obter mais informações, consulte o seguinte Microsoft Developer site Network (MSDN):
Microsoft Office Development com Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
Para obter mais informações, consulte os seguintes artigos do Knowledge Base:
177760Como executar as macros em outros programas do office
219905Como adicionar dinamicamente e executar uma macro VBA a partir do Visual Basic
274680Como usar MFC para recuperar uma lista de nomes de macro em um documento do Office

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 315731 - Última Revisão: 03/09/2007 08:48:25 - Revisão: 8.2

Microsoft Office Excel 2007, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Visual Basic 6.0 Professional Edition

  • kbmt kbautomation kbhowtomaster KB315731 KbMtpt
Comentários