Bezpieczeństwo makr

Pliki Excela zawierające kod VBA (czyli makra i/lub procedury) mogą niestety zawierać również szkodliwe oprogramowanie i mogą być niebezpieczne dla naszego komputera. Ma to znaczenie szczególnie przy otwieraniu plików nieznanego pochodzenia, pochodzących gdzieś z internetu i warto się zabezpieczyć. 
Ustawienia bezpieczeństwa makr dostępne są na karcie Developer w grupie opcji Kod:

Można je też ustawić na karcie Plik –> Opcje –> Centrum Zaufania –> Ustawienia Centrum Zaufania.

Dostępne są tu następujące opcje:

Ja preferuję tu drugą opcję czyli wyłączenie makr i włączenie powiadomień. Dotyczy to ustawień ogólnych Excela i dotyczy wszystkich plików. Po jej wyborze, przy otwarciu pliku z makrami zobaczymy taki komunikat:

Wystarczy, jeżeli naciśniemy przycisk Włącz zawartość i wszystkie makra będą dostępne.

Jest to z pewnością bardzo pożyteczne działanie, ale w sytuacji aplikacji znanych i sprawdzonych, z pewnego źródła – często uciążliwe. Jak się pozbyć tych komunikatów? Przynajmniej w stosunku do tych treści, których jesteśmy pewni?
Służy do tego inna z opcji Centrum Zaufania – Zaufane lokalizacje

Po naciśnięciu przycisku Dodaj nową lokalizację… , otwiera się  nowy formularz, w którym definiujemy wybrany folder:

Z reguły warto od razu zaznaczyć także checkbox Podfoldery tej lokalizacji są także zaufane.

W ten sposób może wybrać zaufane lokalizacje na naszym komputerze. Jeżeli chcemy zdefiniować jakiś dysk sieciowy, konieczne jest zaznaczenie wcześniejsze checkboxa Zezwalaj na zaufane lokalizacje w mojej sieci.


Funkcja VBA And

Funkcja And w VBA to jedna z funkcji logicznych VBA. Właściwie to spełnia rolę operatora w iloczynie logicznym.
Wszystkie warunki będące czynnikami takiego iloczynu muszą być typu Boolean (czyli True dla prawdy i False dla fałszu). W wyniku działania otrzymujemy również wartość typu Boolean.

Public Sub Przyklad()
Dim CzyPrawda As Boolean
Dim Warunek1 As Boolean
Dim
Warunek1 As Boolean
Dim Warunek1 As Boolean

CzyPrawda = Warunek1 And Warunek2 And Warunek3
End Sub

W wyniku działania otrzymujemy wartość True tylko wtedy, gdy każdy z warunków jest spełniony czyli ma wartość True.  W każdym innym przypadku otrzymamy False.

Odpowiednikiem funkcji w Excelu jest funkcja Oraz()


Kurs Makra i VBA w Excelu dla początkujących

 

Funkcja ORAZ

Funkcja ORAZ to jedna z funkcji logicznych Excela. Zwraca wartość typu logicznego (Prawda lub Fałsz).
Jest odpowiednikiem iloczynu logicznego czyli koniunkcji.

Argumentami funkcji są warunki, które albo są spełnione albo nie – czyli każdy z nich zwraca wartość Prawda lub Fałsz.

Jeżeli każdy z pojedynczych warunków jest spełniony – funkcja ORAZ zwraca wartość Prawda. Jeżeli choć jeden z warunków nie jest spełniony – w wyniku działania funkcji otrzymujemy Fałsz.

Odpowiednikiem funkcji w VBA jest funkcja And().


Kurs Excel 2019 od podstaw

 

Przenoszenie pliku

Jak szybko przenieść czyli usunąć w jednym miejscu i przenieść w inne miejsce na dysku) plik? Jednym ze  sposobów  jest wykorzystanie obiektu FileSystem.Object.
Służy do tego metoda FileSystem.Object.MoveFile
Ma ona kilka parametrów wejściowych:

    • Object – nazwa obiektu zdefiniowanego jako obiekt FSO. Argument obowiązkowy.
    • Source – nazwa pliku do skopiowania. Argument obowiązkowy, ale dozwolone są znaki zastępcze w nazwie.
    • Destination – nazwa pliku po przeniesieniu. Argument obowiązkowy.

Zarówno stara jak i nowa nazwa pliku musi być pełna czyli z z dokładnym podaniem dysku i katalogu.

Przykładowy kod  może wyglądać tak:

Public Sub PrzeniesPlik()
Dim FSO As Object
Dim StaryPlik As String
Dim
NowyPlik As String
StaryPlik = “C:\Folder1\plik.png”
NowyPlik = “C:\Folder2\plik.png”
Set FSO = CreateObject(“Scripting.FileSystemObject”)
FSO.MoveFile StaryPlik, NowyPlik
Set FSO = Nothing
End Sub

Warto też  wcześniej zwrócić uwagę na sprawdzenie, czy plik do przeniesienia istnieje. Jeżeli nie, to w trakcie wykonywania procedury wystąpi błąd wykonania 53.


Kurs Excel - makra i VBA dla początkujących

 

Funkcja WeekDay

Funkcja WeekDay to jedna z funkcji Daty i Czasu VBA. Zwraca wartość liczbową (od 1 do 7) odpowiadającą numerowi dnia tygodnia.

Argumenty funkcji to:

    • Date– wartość daty (argument obowiązkowy)
    • FirstDayofWeek -pierwszy dzień tygodnia:
      • vbUseSystem lub 0zgodne z ustawieniami systemu komputera
      • vbSunday lub 1 dla ustawień niedziela=1 do sobota=7
              wartość domyślna
      • vbMonday lub 2 dla ustawień poniedziałek=1 do niedziela=7
      • vbTuesday lub 3 dla ustawień wtorek =1 do poniedziałek=7
      • vbWednesday lub 4 dla ustawień środa=1 do wtorek=7
      • vbThursday lub 5 dla ustawień czwartek =1 do środa=7
      • vbFriday lub 6 dla ustawień piątek =1 do czwartek=7
      • vbSaturday lub 7 dla ustawień sobota =1 do piątek=7

Wynikiem działania funkcji jest liczba całkowita 1 do 7 – w zależności od przyjętego argumentu wejściowego.

Odpowiednikiem funkcji w Excelu jest funkcja Dzien.Tyg()


Kurs Makra i VBA w Excelu dla początkujących

 

Formatowanie warunkowe z użyciem pasków danych

Formatowanie warunkowe w Excelu to bardzo obszerne narzędzie z wieloma możliwościami wizualizacji danych. Jednym z najprostszych jest sposobów jest formatowanie wstawiające do komórki paski danych.

Najprościej można pokazać to na przykładzie.
Załóżmy, że mamy arkusz z średnimi temperaturami powietrza. Zaznaczamy zakres temperatur i na karcie Narzędzia główne wybieramy Formatowanie warunkowe:

Efekt jest widoczny od razu.

Oczywiście takie formatowanie warunkowe można zmienić, dostosowując je do własnych potrzeb. Z menu formatowania warunkowego wybieramy Zarządzaj regułami, odszukujemy wprowadzoną regułą i przechodzimy do jego edycji.

 W okienku edycji widać poszczególne opcje do wyboru. Możemy je zmieniać tak, jak nam się podoba.

Po zmianie kolorów, nie zapominajmy o wartościach ujemnych.

U mnie efekt końcowy wyszedł tak:

 


A tu trochę wsparcia z Excela:

Kurs Efektywna praca w Excelu - porady i triki

Kompresja obrazów w Excelu

W pliku Excela czasami pojawia się konieczność wstawienia zdjęć. Ubocznym skutkiem tego jest jednak znaczne powiększenie rozmiaru pliku. Co można zrobić w takim przypadku? Wskazana jest kompresja wstawionych obrazków.

Warto zajrzeć.


Kurs Efektywna praca w Excelu - porady i triki

 

 

Typy danych

Podstawowe typy danych w Excelu

Boolean Typ logiczny.
Przyjmuje dwie wartości:
True – prawda
False – fałsz
Integer typ całkowity.
Obejmuje liczby całkowite z zakresu -32 768 do 32 767
Long Typ całkowity długi.
Obejmuje liczby całkowite z zakresu -2 147 483 648 do
2 147 483 647
Currency Typ wautowy.
Obejmuje liczby rzeczywiste z 15 cyfr przed i 4 po przecinku
Single Typ rzeczywisty pojedynczej precyzji.
Obejmuje liczby rzeczywiste z zakresu:
od -3.402823 E38 do -1.401298E-45
oraz od 1.401298E-45 do 3.402823E38
Double Typ rzeczywisty podwójnej precyzji.
Obejmuje liczby rzeczywiste z zakresu:
od -1.79769313486231E308 do -4.94065645841247E-324
oraz od 4.94065645841247E-324 do 1.79769313486232E308
Date Typ daty.
Obejmuje daty od 1 stycznia  100r. do 31 grudnia 9999r.
String Typ łańcuchowy często nazywany także tekstowym.
Obejmuje znaki z klawiatury – może ich być od zera do 2 bilionów
Variant Typ ogólny.
Zadeklarowanie zmiennej jako typ Variant jest w zasadzie jednoznaczne z brakiem deklaracji typu. Dostęp do danych jest jednak dłuższy i spowalnia program.

Błąd wykonania 75

Błąd wykonania 75 – Path/File access error

Błąd ten pojawia się w sytuacji, gdy następuje odwołanie do pliku lub folderu, który nie istnieje. Wystąpi także przy próbie utworzenia folderu, który już jest zapisany.
Najlepszym zabezpieczeniem kodu jest tu po prostu wcześniejsze sprawdzenie, czy dany plik/folder istnieje.
Przykładowy kod może wyglądać tak:

Public Sub NowyKatalog()
If Dir(“C:\ABCD”, vbDirectory) = “” Then   ‘(1)
   MkDir (“C:\ABCD”)   ‘(2)
End If`  ‘(3)
End Sub

W linii (1) następuje sprawdzenie, czy istnieje katalog. Jeżeli nie – następuje przejście do linii (2), jeżeli tak – do (3).

 

Wyrażenie MkDir

MkDir to wyrażenie VBA tworzące na dysku nowy katalog. Posiada 1 argument:

    • Path– pełna nazwa folderu, który chcemy utworzyć

Jeżeli katalog o tej nazwie już istnieje wystąpi błąd wykonania 75

Przykładowy kod VBA może wyglądać tak:

Public Sub NowyKatalog()
If Dir(“C:\ABCD”, vbDirectory) = “” Then
MkDir (“ABCD”)
End If
End Sub

 

 

%d bloggers like this: