Você pode , mas é confuso e perigoso.
- 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)
- Crie uma pasta de trabalho pessoal de macros (se você ainda não tiver uma)
- No objeto
ThisWorkbook
da sua pasta de trabalho pessoal, use o eventoWorkbook_Open
para mapear Ctrl + S para outra macro. (Vai ser algo comoApplication.OnKey "^s", "saveAsMacroIfMacrosExist"
) - Use o evento
Workbook_BeforeClose
para desativar novamente (Application.OnKey "^s"
) - 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.
- 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.