Uma macro do Excel Para guardar um livro antes de Encerramento

A macro aqui apresentada é uma excelente maneira de proteger os usuários contra inadvertidamente fechando seus arquivos antes de salvar. Quando implementado, este macro garante que Excel salva automaticamente a pasta de trabalho antes de fechá-lo.

Excel normalmente avisar os usuários que estão tentando fechar uma pasta de trabalho não salvo, dando-lhes a opção de salvar antes de fechar. No entanto, muitos usuários podem explodir passado o aviso e, inadvertidamente, clique Não, dizendo Excel para fechar sem salvar. Com esta macro, você está protegendo contra esta salvando automaticamente antes de fechar.

Como as obras de macro

O código é acionado pelo evento BeforeClose do livro. Ao tentar fechar o livro, este evento é acionado, a execução do código dentro. O ponto crucial do código é simples - ele pede que os usuários se eles querem fechar o livro. A macro, em seguida, avalia se o usuário clicar em OK ou Cancelar.

A mensagem que você vê quando você tenta fechar o livro.
A mensagem que você vê quando você tenta fechar o livro.

A avaliação é feita com uma declaração Select Case. A declaração Select Case é uma alternativa para a instrução If-Then-Else, o que lhe permite executar verificações de condição em seus macros. A construção básica de uma declaração Select Case é simples:

Select Case Caso é = Caso é =Caso é =End Select

Com uma declaração Select Case, você pode realizar muitas verificações condicionais. Neste caso, você está simplesmente a verificação de OK ou Cancelar. Dê uma olhada no código:

Private Sub Workbook_BeforeClose (Cancel As Boolean) "Etapa 1: Ative a caixa de mensagem e iniciar o checkSelect Caso MsgBox (" Salvar e fechar? ", VbOKCancel) 'Passo 2: botão pressionado Cancelar para que cancelar a closeCase Is = vbCancelCancel = True' passo 3: botão OK pressionado, para salvar a pasta de trabalho e closeCase Is = vbOKActiveWorkbook.Save'Step 4: Feche a Select Case statementEnd SelectEnd Sub

Na Etapa 1, você ativa a caixa de mensagem como a verificação de condição para a instrução Select Case. Você usa o argumento vbOKCancel para garantir que o OK e Cancelar botões são apresentados como opções.

Na Etapa 2, se o usuário clicou em Cancelar na caixa de mensagem, a macro informa ao Excel para cancelar o evento Workbook_Close passando Fiel ao Anular booleana.

Se o usuário clicou no botão OK na caixa de mensagem, Passo 3 tem efeito. Aqui, você dizer Excel para guardar o livro. E porque você não definiu o Anular booleano True, Excel continua com o próximo.

Na etapa 4, você simplesmente fechar a instrução Select Case. Toda vez que você instanciar um Select Case, você deve fechá-la para fora com um correspondente End Select.

Como usar o macro

Para implementar essa macro, você precisa copiar e colá-lo na janela de código de eventos do Workbook_BeforeClose. Colocar a macro não permite que ele seja executado cada vez que você tentar fechar a pasta de trabalho:

  1. Ative o Editor do Visual Basic pressionando Alt + F11.

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

  3. Clique ThisWorkbook.

  4. Na lista drop-down de eventos, selecione o evento BeforeClose.

  5. Digite ou cole o código no módulo recém-criado.

    Digite o seu código no evento de pasta de trabalho BeforeClose.
    Digite o seu código no evento de pasta de trabalho BeforeClose.

menu