Snaha ochránit sešit pomocí maker před zakázanými manipulacemi je přirozená. Povolení maker při otvírání sešitu si ale nelze vynutit. Zdá se, že to prakticky ochranu sešitu pomocí maker znehodnocuje. Přesto existuje technika, která umí tento gordický uzel rozetnout. Přestože i na ni lze vyzrát, je ta technika relativně spolehlivá.
Stejně jako existuje událost Workbook_Open, existuje i událost Workbook_BeforeClose. S její pomocí můžeme dosáhnout slušného zabezpečení sešitu nastavením vlastnosti VeryHidden všem datovým listům. V sešitě ale musí zůstat alespoň jeden list otevřený. Proto do sešitu přidáme jeden list s oznámením, že bez spuštěných maker sešit nebude pracovat. Při zavírání sešitu zobrazíme pouze tento list, zatímco zbývající listy sešitu skryjeme jako VeryHidden. Listy, skryté VeryHidden, lze zobrazit právě jenom pomocí VBA. A to je podstata použité finty.
Událost Workbook_Open napíšeme tak, že datové listy naopak uvede do stavu Visible (a ten pomocný list schová). Aby Workbook_Open proběhla, musíme makra povolit. Když se naopak pokusíme sešit otevřít bez povolených maker, datové listy zůstanou VeryHidden a my uvidíme jen tu oznamovací ceduli. V tomto stavu prakticky zůstane obsah sešitu nedostupný, a tedy ochráněný. Bez povolených maker proto spuštění sešitu ztrácí jakýkoliv smysl.
citovat