É possível fazer com que uma pasta de trabalho do Excel seja salva automaticamente como habilitada para macro se a macro for adicionada à pasta de trabalho?

É possível fazer com que uma pasta de trabalho do Excel seja salva automaticamente como habilitada para macro se a macro for adicionada à pasta de trabalho?

Atualmente, no Excel 2010, quando tento salvar uma pasta de trabalho que criei como um arquivo .xlsx, mas adicionei uma função ou sub-rotina VBA, o Excel fornece um prompt perguntando (de forma indireta) se eu quero alterá-lo para um arquivo .xlsm. Isso não seria um problema para mim se a resposta padrão a esta pergunta fosse "sim, eu preferiria que todo o trabalho de programação que fiz enquanto trabalhava neste arquivo fosse excluído porque salvei", mas você precisa clicar ativamente em ou vá até o botão "Não" ou ele será salvo como um arquivo .xlsx e você perderá todos os seus módulos.

Esta é uma das únicas situações em que a opção padrão é excluir dados em vez de salvá-los. Eu sei que o fato de ter perdido parte deste trabalho é principalmente culpa minha e deveria ter mais cuidado, mas gostaria muito de saber se posso desabilitar esta mensagem ou alterar o padrão de alguma forma.

Responder1

Vocêpodemas é confuso e perigoso.

  1. Permitir que o VBA leia/grave VBA (Arquivo > Opções > Central de confiabilidade > Configurações da central de confiabilidade > Configurações de macro > Acesso confiável ao modelo de objeto do projeto VBA)
  2. Crie uma pasta de trabalho macro pessoal (se ainda não tiver uma)
  3. No ThisWorkbookobjeto da sua pasta de trabalho de macro pessoal, use o Workbook_Openevento para mapear Ctrl+ Spara alguma outra macro. (Será algo como Application.OnKey "^s", "saveAsMacroIfMacrosExist")
  4. Use o Workbook_BeforeCloseevento para desligá-lo novamente ( Application.OnKey "^s")
  5. Vá escrever essa sub-rotina - não uma função - em um módulo na pasta de trabalho pessoal de macros. (Isso é deixado como um exercício para o leitor, mas encontrei um trechoaquique eu não testei, mas devo testar se uma pasta de trabalho contém macros ou não.)
  6. Use Ctrl+ Spara salvar seus arquivos em vez da barra de ferramentas ou Arquivo > Salvar.

Ponto-chave: Isso requer que você permita permanentemente o acesso ao modelo de objeto do projeto VBA, o que é, em geral, uma má ideia.

Responder2

Você não pode alterar isso no nível da pasta de trabalho.

No entanto, você pode permitir que o Excel sempre habilite todas as macros por padrão.

  1. Clique em Arquivo > Opções.
  2. Clique em Central de confiabilidade e Configurações da Central de confiabilidade.
  3. Clique em Configurações de macro e habilite todas as macros

Está nodocumentação

informação relacionada