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 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 CaseCaso é = 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:
Ative o Editor do Visual Basic pressionando Alt + F11.
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.
Clique ThisWorkbook.
Na lista drop-down de eventos, selecione o evento BeforeClose.
Digite ou cole o código no módulo recém-criado.
Digite o seu código no evento de pasta de trabalho BeforeClose.