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

0

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 faz um prompt perguntando (de uma forma circular) se eu quiser para alterá-lo para um arquivo .xlsm. Isso não seria um problema para mim se a resposta padrão para esta pergunta fosse "sim, eu preferiria não ter todo o trabalho de programação que fiz enquanto trabalhava neste arquivo apagado porque eu salvei", mas você precisa clicar ativamente ou tab sobre o botão "Não" ou então ele salva como um arquivo .xlsx e você perde todos os seus módulos.

Essa é uma das únicas situações em que corri onde a opção padrão é excluir dados em vez de salvá-los. Eu sei que o fato de eu ter perdido parte desse trabalho é principalmente minha culpa e eu deveria ser mais cuidadoso, mas eu realmente gostaria de saber se eu posso desabilitar esta mensagem ou mudar o padrão de alguma forma.

    
por nateAtwork 11.03.2015 / 00:30

2 respostas

1

Você pode , mas é confuso e perigoso.

  1. Permitir que o VBA leia / escreva VBA (Opções de arquivo > Centro de fidedignidade > Configurações da Central de Confiança > Configurações de macro > Confie no acesso ao modelo de objeto do projeto VBA)
  2. Crie uma pasta de trabalho pessoal de macros (se você ainda não tiver uma)
  3. No objeto ThisWorkbook da sua pasta de trabalho pessoal, use o evento Workbook_Open para mapear Ctrl + S para outra macro. (Vai ser algo como Application.OnKey "^s", "saveAsMacroIfMacrosExist" )
  4. Use o evento Workbook_BeforeClose para desativar novamente ( Application.OnKey "^s" )
  5. Ir escrever essa sub-rotina - não uma função - em um módulo na pasta de trabalho de macros pessoais. (Isto é deixado como um exercício para o leitor, mas eu encontrei um trecho aqui que eu não testei, mas devo testar se uma pasta de trabalho possui ou não macros nela.
  6. Use Ctrl + S para 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, que é, em geral, uma má idéia.

    
por 11.03.2015 / 14:35
0

Você não pode alterar isso em um nível de pasta de trabalho.

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

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

Está no documentação

    
por 11.03.2015 / 07:49