Existe uma maneira de incluir as funções de evento “pasta de trabalho” em meu arquivo de macros pessoais?

0

por exemplo,

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
    Beep
End Sub

Isso só funciona em "ThisWorkbook" e apenas em uma planilha por vez, não no meu arquivo personal.xlsb. (Inspirado em aqui .)

    
por Eliyahu 10.12.2014 / 16:52

1 resposta

3

  1. Pressione F4 para exibir as propriedades do projeto.
  2. Nomeie o VBAProject para sua pasta de trabalho pessoal Personal
  3. Crie uma sub-rotina que chame bip.

    Public Sub MakeItBeep
        Beep
    End Sub
    
  4. Na pasta de trabalho em que você deseja ativar, clique em Ferramentas > > Referências na barra de menus.
  5. Clique em Procurar ...
  6. Localize seu arquivo Personal.xls e selecione-o. (Pode ser em vários locais diferentes, portanto, pesquisar a unidade C:\ geralmente é a maneira mais fácil de encontrá-la.)
  7. No caso apropriado de sua pasta de trabalho, insira este código (ajustando para o nome do módulo, é claro).

    Personal.Module1.MakeItBeep
    

Existem alguns problemas com isso, e eu realmente não o recomendo.

  1. Isso é muito mais código e trabalho do que apenas chamar Beep diretamente.
  2. Isso provavelmente causará um erro para qualquer outro usuário que trabalhe com a pasta de trabalho. Eles precisariam desativar as macros neste livro. Portanto, se houver outras macros que precisem funcionarem, você não poderá fazer isso.

Você pode usar diretivas para contornar isso, mas é muito trabalho para zero benefício. Se você ainda está interessado, eu escrevi um tutorial sobre como usar a compilação condicional com uma configuração de nível de projeto .

    
por 10.12.2014 / 17:29