Note: The other languages of the website are Google-translated. Back to English
Log in  \/ 
x
or
x
Inscreva-se  \/ 
x

or

Como forçar os usuários a salvar como uma pasta de trabalho habilitada para macro?

Quando você salva uma pasta de trabalho do Excel, ela é salva como formato de arquivo xlsx por padrão e esse formato de arquivo se livra dos códigos de macro da pasta de trabalho se houver vários códigos. Para manter os códigos, você deve salvar a pasta de trabalho no formato de pasta de trabalho habilitada para macro do Excel. Como você poderia forçar os usuários a salvar como uma pasta de trabalho habilitada para macro?

Força os usuários a salvar como uma pasta de trabalho habilitada para macro com código VBA


seta azul bolha direita Força os usuários a salvar como uma pasta de trabalho habilitada para macro com código VBA

Para salvar a pasta de trabalho como uma pasta de trabalho habilitada para macro por padrão, o seguinte código VBA pode ajudá-lo, faça o seguinte:

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Em seguida, clique duas vezes ThisWorkbook sob a VBAProject seção para abrir um novo módulo em branco e, em seguida, copie e cole o seguinte código no módulo:

Código VBA: Forçar para salvar a pasta de trabalho como pasta de trabalho habilitada para macro por padrão:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Updateby Extendoffice
Dim xFileName As String
If SaveAsUI <> False Then
    Cancel = True
    xFileName = Application.GetSaveAsFilename(, "Excel Macro-Enabled Workbook (*.xlsm), *.xlsm", , "Save As xlsm file")
    If xFileName <> "False" Then
      Application.EnableEvents = False
      ActiveWorkbook.SaveAs Filename:=xFileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
      Application.EnableEvents = True
    Else
      MsgBox "Action Cancelled"
      Cancel = True
      Exit Sub
    End If
End If
End Sub

doc force salvar como xlsm 1

3. Em seguida, salve e feche esta janela de código, a partir de agora, quando os usuários salvarem como esta pasta de trabalho, ela será salva como Pasta de trabalho habilitada para macro do Excel formato por padrão, conforme mostrado a seguir:

doc force salvar como xlsm 2


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Super Formula Bar (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2019 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Teste gratuito de 30 dias com recursos completos. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
officetab bottom
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    rdmason@tmo.com · 1 years ago
    Any way to have this VBA in a file that is a true template file type?
    • To post as a guest, your comment is unpublished.
      PatrickF · 1 years ago
      When you are ready to create the template, I believe you must use the Immediate Window to run
      ActiveWorkbook.SaveAs Filename:="ENTER YOUR TEMPLATE NAME", FileFormat:=xlOpenXMLTemplateMacroEnabled
  • To post as a guest, your comment is unpublished.
    Rich · 1 years ago
    Any way to have this VBA in a template file
  • To post as a guest, your comment is unpublished.
    Jonathan · 2 years ago
    Keep getting a 1004 ERROR.
    Using Off365 2016 for MAC. Got a solutions?
    • To post as a guest, your comment is unpublished.
      skyyang · 2 years ago
      Hello, Jonathan,
      This code works well in Windows Office, but it not tested in MAC.
      You should search for a code for working in MAC.
      Thank you!
  • To post as a guest, your comment is unpublished.
    Shazza · 2 years ago
    fileformat: =52 is a nicer was as making macro enabled workbook. fileformat:=51 is normal workbook.
  • To post as a guest, your comment is unpublished.
    brevig.madison@gmail.com · 3 years ago
    I'm using Excel 2016 for Mac, and when I use this VBA code to achieve the "force save as .xlsm" I get the following error:

    Run-time error '1004':

    Method 'GetSaveAsFilename' of object '_Application' failed

    Any guidance someone could provide around this error and how I may need to adjust the code to work on the Mac version of Excel would be greatly appreciated!
  • To post as a guest, your comment is unpublished.
    ProbablyNotLadyGaga · 3 years ago
    Nice one!

    Saved me a lot of headache! :)
  • To post as a guest, your comment is unpublished.
    RM · 3 years ago
    Saved me a lot of pain - thanks so much
  • To post as a guest, your comment is unpublished.
    AFF · 4 years ago
    This was so useful and worked like a charm thank you :)