Forçando seus clientes para ativar macros do excel

Para usar qualquer macro no Excel, os usuários devem ativar macros. Ou seja, eles devem dar permissão Excel para executar macros em seu ambiente. Para ativar macros, os usuários clicam no botão Conteúdo no aviso de segurança que aparece acima da barra de fórmulas Ativar.

A linha inferior é que você pode escrever todas as macros extravagantes do mundo, mas eles nunca funcionará a menos que seus usuários habilitar as macros. Isso levanta a pergunta você pode forçar os usuários a ativar macros? A resposta é sim - com um pouco de malandragem.

Video: Como Ativar Macros no Excel 2007 e Excel 2010 - Richard Zimmermann

A idéia é relativamente simples. Você cria uma folha com o nome, digamos, Start. Essa folha contém apenas uma simples advertência afirmando que macros deve estar habilitado. Você, então, esconder todas as folhas do livro, exceto para que a folha INÍCIO. Finalmente, você escrever uma macro simples que unhides todas as folhas quando o livro é aberto.

Neste ponto, quando o livro é aberto, Excel irá pedir ao usuário ativar macros. Os usuários serão forçados a fazê-lo, porque todos eles vão ver é a sua folha Start. As outras folhas serão escondidos!

Para fazer este trabalho técnica, você precisa de duas macros: Um macro oculta todos, mas a folha de começar quando o livro se fecha e outra macro que unhides todos, mas a folha de começar quando abre o livro.

Em primeiro lugar, abordar as ações que precisam acontecer quando o livro se fecha. :

  1. Ativar o Editor do Visual Basic pressionando ALT + F11 no seu teclado

  2. Na janela Project, encontrar o seu nome do projeto / pasta de trabalho e clique no sinal de mais ao lado dele para ver todas as folhas.

  3. Clique ThisWorkbook.

  4. Na caixa drop-down do Evento, selecione o evento BeforeClose.

  5. Digite ou cole o seguinte código:

Private Sub Workbook_BeforeClose (Cancel As Boolean) `Passo 1: Declare seu ws variablesDim Como Worksheet`Step 2: Unhide os SheetSheets inicial ("COMEÇAR") .Visible = xlSheetVisible`Step 3: Iniciar loop através de todos worksheetsFor Cada ws Em ThisWorkbook.Worksheets`Step 4: Verifique cada planilha nameif ws.Name lt; gt; "COMEÇAR" Then`Step 5: Esconder o sheetws.Visible = xlVeryHiddenEnd If`Step 6: Loop para próxima worksheetNext ws`Step 7: Salve o workbookActiveWorkbook.SaveEnd Sub

Na Etapa 1, você declarar um objeto chamado ws para criar um recipiente de memória para cada planilha que irá percorrer.

Video: Habilitação das Macros Excel 2002/2003

Na Etapa 2, você garante que a folha de INÍCIO é visível.

Na Etapa 3, você inicia o looping, dizendo Excel que pretende avaliar todas as planilhas nesta pasta de trabalho.



Na Etapa 4, você simplesmente comparar o nome START para a folha que está sendo enrolado. Este passo assegura que as acções que vêm a seguir são aplicados a todas as folhas excepto a folha de ARRANQUE.

Se os nomes das folhas são diferentes, no Passo 5, você esconder a folha usando a propriedade xlVeryHidden. Esta propriedade não apenas oculta a folha, mas também impede o utilizador de ao mostrar-lo manualmente utilizando a interface do utilizador.

Você loop de volta para obter a próxima folha na Etapa 6.

Na etapa 7, depois de todas as folhas são avaliadas, a macro guarda o livro e termina.

Agora, você tem que escrever uma macro para lidar com todas as ações que precisam acontecer quando abre o livro:

  1. Ativar o Editor do Visual Basic pressionando ALT + F11.

  2. Na janela Project, encontrar o seu nome do projeto / pasta de trabalho e clique no sinal de mais ao lado dele para ver todas as folhas.

  3. Clique ThisWorkbook.

  4. Na caixa drop-down do Evento, selecione o evento Open.

  5. Digite ou cole o seguinte código:

Private Sub Workbook_Open () `Passo 1: Declare seus ws variablesDim Como Worksheet`Step 2: Iniciar loop através de todos worksheetsFor Cada ws Em ThisWorkbook.Worksheets`Step 3: Unhide All Worksheetsws.Visible = xlSheetVisible`Step 4: Loop para próximos ws worksheetNext `Passo 5: Esconder Iniciar SheetSheets ("COMEÇAR") .Visible = xlVeryHiddenEnd Sub

Na Etapa 1, você declarar um objeto chamado ws para criar um recipiente de memória para cada planilha que você percorrer.

Na Etapa 2, você inicia o looping, dizendo Excel que pretende avaliar todas as planilhas nesta pasta de trabalho.

Na Etapa 3, você reexibir a folha que está sendo enrolado. Este passo unhides eficazmente todas as folhas à medida que cada folha é tornado visível.

Você loop de volta para obter a próxima folha no Passo 4.

Após todas as folhas se tornam visíveis, Passo 5 esconde a folha ARRANQUE. Mais uma vez, você usa a propriedade xlVeryHidden para que o usuário não será capaz de mostrá manualmente a folha usando a interface do usuário.

Depois de ambas as macros são implementadas, você terá um livro que só funcionará se o usuário permite macros!


Publicações relacionadas