Jeszcze do niedawna, gdy pobierałem z Internetu plik zawierający makra pojawiało się takie oto ostrzeżenie.

Wystarczyło tylko kliknąć w przycisk Włącz zawartość i mogłem korzystać z dobrodziejstw oferowanych przez makra. Obecnie gdy plik zostanie pobrany z Internetu lub zapiszę załącznik otrzymany na skrzynkę e-mail (testowałem programy Thunderbird i Outlook) zobaczę taki oto komunikat:

Niestety, ale nie da się takiego pliku „w łatwy sposób” otworzyć. Dlaczego? Otóż makra mogą być niebezpieczne a firma Microsoft chce ochronić użytkowników przed zrobieniem sobie krzywdy. I całkiem słusznie wszak początkujący użytkownik raczej z makr nie korzysta a osoby średnio-zaawansowane poradzą sobie z zdjęciem tego zabezpieczenia.
Obecnie bardzo dużo grup przestępczych wysyła pliki udające np. faktury, wezwania do zapłaty, raporty które zawierają makra. Takie makro może np. ściągnąć z Internetu szkodliwe oprogramowanie typu ransomware, którego celem jest zaszyfrowanie wszystkich ważnych plików znajdujących się na komputerze ofiary. Oczywiście istnieje możliwość wykupienia programu deszyfrującego pliki za dość sporą opłatą. I takie sytuacje wbrew pozorom się zdarzają przykładowo: Zarząd Powiatu w Oświęcimiu postanowił przesunąć w budżecie środki w wysokości 620 000 zł z zadań związanych z remonatmi dróg na obsługę incydentu informatycznego.
Być może ten news jest dość spektakularny, ale podobne sytuacje zdarzają się dość często, tylko są mniej medialne. Sam raz byłem wezwany do pewnego hotelu prowadzonego przez rodzinę mojego dobrego znajomego w celu „naprawienia komputera”. Okazało się, że recepcjonista ściągnął z poczty jakąś niby fakturę a był to plik zawierający makro, które w moment zaszyfrowało wszystkie pliki w komputerze.
No dobra, jestem świadomy zagrożeń, ale chcę korzystać z makr!
Pobierz przykładowy (niegroźny) plik zawierający makra
Być może nieźle Ciebie nastraszyłem. I słusznie. Nie należy jak opętany klikać we wszystko co się rusza! Ale sporo osób korzysta z makr, które nie są szkodliwe. Przykładowo można napisać w Excelu makro usprawniające proces układania podziału godzin dla małej szkoły, albo makro które będzie się starać jak najbardziej sprawiedliwie rozdzielać zadania pracownikom. Tak więc poniżej pokrótce omówię kilka sposobów jak włączyć makra w pliku pobranym z Internetu.
Zaczynamy!
Zmiana właściwości pliku
Po zapisaniu pliku należy w Eksploratorze Windows kliknąć na pliku prawym przyciskiem myszy i z menu kontekstowego wybrać opcję Właściwości. Następnie w oknie dialogowym Właściwości należy „zaptaszkować” pole Odblokuj i kliknąć w przycisk OK.

Tak odblokowany plik możesz już otworzyć. Owszem pojawi się żółty pasek z ostrzeżeniem, ale po kliknięciu w przycisk Włącz edytowanie automatyczniewykona się procedura auto_open, która ma za zadanie wyświetlenie okna z komunikatem jak na poniższym rysunku.

Niestety, ale trzeba ręcznie „odblokowywać” każdy plik pobierany z Internetu. Jeśli to rozwiązanie nie jest to dla Ciebie uciążliwe (bo np. pliki z makrami ściągasz z Internetu bardzo sporadycznie), możesz skończyć czytanie artykułu w tym miejscu.
Zaufane lokalizacje
Często ściągamy z poczty lub z Internetu pliki zawierające makra dobrym rozwiązaniem jest zapisywanie takich plików w ściśle określonym folderze. Nastepnie taki folder możemy dodać do listy zaufanych lokalizacji.
W tym celu należy kliknąć na karcie Plik i wybrać polecenie Opcje. Pojawi się okno dialogowe Opcje programu Excel. Następnie należy wybrać zakładkę Centrum zaufania i kliknąć po prawej stronie w przycisk Ustawienia Centrum zaufania…

Pojawi się okno dialogowe Centrum zaufania. Wybierz zakładkę Zaufane lokalizacje a następnie na dole kliknij w przycisk Dodaj nową lokalizację…

Pojawi się okno dialogowe Zaufana lokalizacja pakietu Microsoft Office. Kliknij w przycisk Przeglądaj… aby wskazać folder w którym będziesz przechowywał dokumenty pobierane z Internetu. W moim przypadku był to folder Dokumenty znajdujący się w usłudze Onedrive.Opcjonalnie możesz zaznaczyć opcję Podfoldery tej lokalizacji są także zaufane. I kliknij w przycisk OK.

Takich lokalizacji możesz dodać kilka. Następnie pozamykaj wszystkie pozostałe okna dialogowe klikając w nie w przycisk OK.
Od tej pory otwierając pliki z tego folderu, które będą zawierały makra będzie się pojawiał żółty pasek na którym należy kliknąć w przycisk Włącz zawartość.
Wskazówka: Jako zaufaną lokalizację możesz dodać np. cały dysk C:\ wraz z podfolderami. Nie polecam tego rozwiązania, ale lojalnie informuję, że jest taka możliwość.
Zapisuj pliki na… pendrive
Jeśli pobieramy plik z Internetu (lub zapisujemy załącznik) to przeglądarka internetowa (lub program pocztowy) oprócz tego właściwego pliku zapisuje również pewne „metadane” informujące o tym, że plik został pobrany z Internetu. Tak naprawdę jest tworzony jakby dodatkowy plik o nazwie MakroTest.xlsm:Zone.Identifier (pod warunkiem, że nasz pobierany z Internetu plik nazywał się MakroTest.xlsm), który jest niewidoczny (dygresja: jeśli jesteś osobą techniczną i ten temat Ciebie zainteresował, możesz poczytać coś o Alternate Data Streams). Aby było ciekawiej, te „metadane” są zapisywane tylko na nośnikach, które mają system plików NTFS. Natomiast nośniki typu pendrive lub karty pamięci bardzo często są formatowane aby miały system plików z rodziny FAT (FAT, exFAT, FAT32). Wtedy nie ma możliwości utworzenia owego „pliku z metadanymi”, więc system operacyjny „nie wie”, że dany plik był pobrany z Internetu. Potem taki plik możesz przenieść do dowolnego folderu na dysku twardym (bez metadanych, które się nie zapisały na pendrive). Aby sprawdzić jaki jest system plików na danym nośniku należy w oknie programu Komputer na danym dysku kliknąć prawym przyciskiem myszy i wybrać opcję Właściwości. Pojawi się wtedy dość dobrze znane okienko a w nim dość ważna dla nas informacja:

Skasowanie „metadanych”
To rozwiązanie pokazuję raczej jako ciekawostkę dla osób bardziej technicznych. Szybciej jest „odblokować” plik (co opisałem na początku tego artykułu) ale jeśli lubisz klepać komendy w wierszu poleceń to może Ciebie zainteresować kilka ciekawych komend:
dir /r – to polecenie wyświetla pliki wraz z ADS (czyli wraz z tymi małymi ukrytymi pliczkami zawierającymi nasze metadane).
more < MakroTest.xlsm:Zone.Identifier – to polecenie wyświetli na ekranie zawartość tego małego pliku zawierającego metadane. Tutaj najciekawszy fragment to linijka zawierająca tekst: ZoneId=3 w tym wypadku oznacza, że plik został pobrany z Internetu (i z powodu tego zapisu system wie, że plik może pochodzić z niebezpiecznej lokalizacji). Czasami też jest przechowywany w tym pliku adres URL skąd został pobrany nasz plik.
echo psujemy > MakroTest.xlsm:Zone.Identifier – to polecenie spowoduje „nadpisanie” naszych metadanych. Od teraz „plik” z MakroTest.xlsm:Zone.Identifier będzie zawierał tylko słowo psujemy. W ten oto sposób możemy „odblokować” nasz plik MakroTest.xlsm.

A co z archiwami zip?
Pobierz przykładowe archiwum zawierające plik z nieszkodliwym makrem.
Tutaj ciekawostka. Można plik z makrami skompresować do pliku ZIP. I taki plik wysłać komuś na pocztę. Gdy nasz współpracownik zapisze plik ZIP to zostanie on oznaczony jako plik pobrany z Internetu. I tutaj sprawa może wyglądać bardzo różnie. Otóż jeśli użyję do rozpakowania pliku programu WinRAR lub standardowy mechanizm windowoswy do wyodrębniania plików to wszystkie pliki z archiwum po rozpakowaniu dostaną w gratisie metadane, że plik został pobrany z Internetu. Ale jeśli używam innego oprogramowania do rozpakowywania plików (np. standardowy unpacker plików w programie Total Commander lub program 7-zip) to rozpakowane pliki nie dziedziczą owych metadanych!
To rozwiązanie może być wykorzystywane przez przestepców, którzy chcąc obejść nowe zabezpieczenie Microsoftu zaczną nam wysyłać niebezpieczne pliki z makrami, które będą skompresowane!
W ramach uzupełnienia polecam dość obszerny artykuł: Dwa słowa o makrach i bezpieczeństwie
Dzień dobry,
Niestety, ale żadna z tych opcji nie działa w przypadku gdy chodzi o dane pobierane z usługi OneDrive (udostępnianie pliku). Udostępniam swoim pracownikom pliki które zawierają makra (sam je tworzyłem) i w żaden sposób do póki są w lokalizacji OneDrive nie jestem w stanie ich odblokować. Dopiero gdy je zapiszę lokalnie na komputerze to mogę korzystać z makr, ale wtedy już nie są powiązane przez OneDrive i wszystko traci sens.