Přejít k hlavnímu obsahu

Jak přinutit uživatele, aby ukládali jako sešit s povolenými makry?

Když uložíte sešit aplikace Excel, ve výchozím nastavení se uloží jako formát souboru xlsx a tento formát souboru zbaví kódy maker ze sešitu, pokud existuje více kódů. Chcete-li zachovat kódy, měli byste sešit uložit ve formátu sešitu Excel s povolením maker. Jak můžete přinutit uživatele ukládat jako sešit s povolenými makry?

Přinutit uživatele ukládat jako sešit s povolenými makry s kódem VBA


šipka modrá pravá bublina Přinutit uživatele ukládat jako sešit s povolenými makry s kódem VBA

Chcete-li sešit ve výchozím nastavení uložit jako sešit s povolenými makry, může vám pomoci následující kód VBA, postupujte takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2. Poté dvakrát klikněte Tato pracovní kniha pod Projekt VBA v sekci otevřete nový prázdný modul a poté do modulu zkopírujte a vložte následující kód:

Kód VBA: Ve výchozím nastavení vynutit uložení sešitu jako sešitu s povolenými makry:

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

síla dokumentu uložit jako xlsm 1

3. Poté uložte a zavřete toto okno kódu, od nynějška, když uživatelé budou ukládat jako tento sešit, bude uložen jako Sešit se zvýšeným makra Excel ve výchozím nastavení formát jako následující snímek obrazovky:

síla dokumentu uložit jako xlsm 2

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

karta kte 201905


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (11)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
The VBA code forcing user to save in .xlsm file format works very well for me. I was looking for this solution for quite some time. Many thanks for the help!
This comment was minimized by the moderator on the site
Any way to have this VBA in a file that is a true template file type?
This comment was minimized by the moderator on the site
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
This comment was minimized by the moderator on the site
Any way to have this VBA in a template file
This comment was minimized by the moderator on the site
Keep getting a 1004 ERROR.
Using Off365 2016 for MAC. Got a solutions?
This comment was minimized by the moderator on the site
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!
This comment was minimized by the moderator on the site
fileformat: =52 is a nicer was as making macro enabled workbook. fileformat:=51 is normal workbook.
This comment was minimized by the moderator on the site
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!
This comment was minimized by the moderator on the site
Nice one!

Saved me a lot of headache! :)
This comment was minimized by the moderator on the site
Saved me a lot of pain - thanks so much
This comment was minimized by the moderator on the site
This was so useful and worked like a charm thank you :)
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations