Kopiowanie pliku

Jak szybko skopiować dowolny plik? Sposobów jest kilka, jednym z nich jest wykorzystanie obiektu FileSystem.Object.
Służy do tego metoda FileSystem.Object.Copy
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 skopiowaniu. Argument obowiązkowy.
    • Overwrite – opcjonalny argument typu Boolean. Jeżeli kopiowany plik ma być zapisany pod nazwą już istniejącego pliku, wartość False nie skopiuje pliku. Domyślna wartość True, zastąpi plik plikiem kopiowany.

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

Public Sub KopiujPlik()
Dim FSO As Object
Dim KopiowanyPlik As String
Dim
NowyPlik As String
KopiowanyPlik= “C:\Wprawki\PrzykladowaBaza.accdb”
NowyPlik= “C:\NaBlogi\PrzykladowaBaza.accdb”
Set FSO=CreateObject(“Scripting.FileSystemObject”)
FSO.Copy  KopiowanyPlik, NowyPlik, True
Set FSO=Nothing
End Sub

 


FileSystem.Object

Scripting.FileSystemObject to obiekt służący do zarządzania plikami i folderami. Wprawdzie w kodzie VBA są dostępne proste i przyjemne funkcje Dir, MkDir itp., ale przy odwołaniach do folderów sieciowych niestety często zawodzą. Wówczas pozostaje wykorzystanie właśnie obiektu FileSystemObject, popularnie nazywanym FSO.

Dostępne są tu następujące właściwości i metody:

    • GetDrive – informacje o napędzie (dysku)
    • GetFolder – informacje o folderze
    • GetFile– informacje o pliku
    • CreateFolder – tworzenie folderu
    • CreateFile – tworzenie pliku
    • DeleteFolder – usuwanie folderu
    • DeleteFile – usuwanie pliku
    • CopyFolder – kopiowanie folderu
    • CopyFile – kopiowanie pliku
    • MoveFolder – przenoszenie folderu
    • MoveFile – przenoszenie pliku

To tylko te podstawowe, jest ich więcej. I każda będzie tematem notki.


Funkcja Dir

Funkcja DIR() to funkcja VBA zwracająca wartość tekstową będącą nazwą pliku lub folderu. Bardzo pożyteczna  i często stosowana.

Argumenty funkcji to:

    • PathName– wartość tekstowa odpowiadająca pełnej nazwie pliku lub folderu
    • Attributes – wartość stała lub liczbowa określająca wyszukiwane pliki. Składa się ona z sumy wartości liczbowych z tabeli poniżej.

Atrybuty mogą przyjmować wartości:

Stała Wartość liczbowa Opis
vbNormal 0 Pliki bez właściwości. Wartość domyślna.
vbReadOnly 1 Pliki bez właściwości i pliki tylko do odczytu
vbHidden 2 Pliki bez właściwości i pliki ukryte
vbSystem 4 Pliki bez właściwości i pliki systemowe
vbVolume 8 Etykiety
vbDirectory 16  Foldery

W praktycznym wykorzystaniu funkcja Dir najczęściej stosowana jest do sprawdzania czy istnieje dany folder lub plik oraz do sporządzania listy takich plików.


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

 

Obiekt ChartObject

Obiekt ChartObject to obiekt VBA będący kontenerem do osadzonego w arkuszu wykresu.
Podstawowe metody tego obiektu to:

      • Add – dodawanie nowego
        Parametry wejściowe:
        Left As Double – położenie z lewej strony arkusza
        Top As Double – położenie od góry arkusza
        Width As Double – szerokość
        Height As Double) – wysokosć
      • Copy -kopiowanie
      • Delete – usuwanie
      • Select – zaznaczanie

Podstawowe właściwości to:

      • Left -położenie od lewej strony
      • Top -położenie z góry
      • Width – szerokość
      • Height – szerokość
      • Visible – widoczny
      • Locked – włączony

Kurs Excel - wykresy i wizualizacja danych

Funkcja Shell

Funkcja VBA Shell to funkcja uruchamiająca inny program wykonywalny.
Ma 2 argumenty wejściowe:

    • PathName – argument obowiązkowy. Wartość typu String określająca nazwę programu do otwarcia;
    • WindowStyle – argument opcjonalny. Wartość typu Integer określająca widok okna uruchomionego programu.
      Dostępne są tu następujące wartości:

      • 0 (vbHide) – okno uruchomionego programu jest ukryte
      • 1 (vbNormalFocus) – okno uruchomionego programu jest widoczne i ma fokus
      • 2 (vbMinimizedFocus) – okno uruchomionego programu jest widoczne jako ikona i ma fokus
      • 3 (vbMaximizedFocus) – okno uruchomionego programu jest maksymalnie powiększone i ma fokus
      • 4 (vbNormalNoFocus) – okno uruchomionego programu jest widoczne, ale nie ma fokusu
      • 6 (vbMinimizedNoFocus) – okno uruchomionego programu jest widoczne jako ikona i nie ma fokusu

Wartością domyślną jest tu 1 (vbNormalFocus)

W wyniku działania funkcji VBA otrzymujemy wartość typu Variant będącą identyfikatorem numeru zadania uruchomionego programu. Jeżeli uruchomienie programu się nie powiedzie – zwracana jest wartość 0.

Przy korzystaniu z funkcji Shell warto pamiętać, że jest to funkcja asynchroniczna – niezależnie od wyniku i czasu wykonywania, kod VBA przechodzi dalej do kolejnego kroku. 


Kurs Programowanie VBA w Excelu dla zaawansowanych

Funkcja Right()

Funkcja RIGHT() to jedna z funkcji tekstowych VBA. Zwraca wartość tekstową będącą określoną ilością ostatnich znaków tekstu.

Argumenty funkcji to:

    • String– zmienna typu tekstowego
    • Length – ilość znaków, które mają być zwrócone

Obydwa argumenty są obowiązkowe. Jeżeli któryś z argumentów będzie pusty, funkcja zwróci pusty ciąg czyli “”.

Odpowiednikiem funkcji Right() w Excelu jest funkcja PRAWY()


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

 

Funkcja PRAWY()

Funkcja PRAWY() to jedna z funkcji tekstowych Excela. Zwraca wartość tekstową będącą określoną ilością  ostatnich znaków tekstu.

 

Argumenty funkcji to:

    • Tekst – zmienna typu tekstowego
    • Liczba_znaków – ilość znaków, które mają być zwrócone. Jeżeli argument zostanie pominięty, wstawiana jest wartość 1.

Odpowiednikiem funkcji w VBA jest funkcja Right()


Kurs Excel dla HR

 

Funkcja Left()

Funkcja LEFT() to jedna z funkcji tekstowych VBA. Zwraca wartość tekstową będącą określoną ilością pierwszych znaków tekstu.

 

Argumenty funkcji to:

    • String– zmienna typu tekstowego
    • Length – ilość znaków, które mają być zwrócone

Obydwa argumenty są obowiązkowe.

Odpowiednikiem funkcji  Left() w Excelu jest funkcja LEWY()


Kurs Excel programowanie w VBA

 

Funkcja LEWY()

Funkcja LEWY() to jedna z funkcji tekstowych Excela. Zwraca wartość tekstową będącą określoną ilością pierwszych znaków tekstu.

Argumenty funkcji to:

    • Tekst – zmienna typu tekstowego
    • Liczba_znaków – ilość znaków, które mają być zwrócone. Wartością domyślną jest 1

Odpowiednikiem funkcji VBA jest funkcja Left()


Kurs Analiza danych w Excelu dla początkujących

 

Daty świąt w kalendarzu

Jak w Excelu wyznaczyć daty świąt kalendarzowych? Można to zrobić samymi funkcjami, bez używania makr. I to także dla świąt ruchomych, nie mających swoich stałych dat w kalendarzu.

Po zmianie roku w komórce A1 (podświetlona na żółto), daty automatycznie się zmieniają, wskazując aktualizację dla danego roku.

 

Plik Excela widoczny na screenach można pobrać tu:

Daty świąt w kalendarzu

A zastosowane funkcje (przy założeniu, że w komórce A1 jest wpisany rok)  wyglądają tak:

Data Funkcja Nazwa święta
2022-01-01 DATA(A1;1;1) Nowy Rok
2022-01-06 DATA(A1;1;6) Trzech Króli
2022-04-17 ZAOKR.W.DÓŁ(DATA(A1;5;
DZIEŃ(MINUTA(A1/38)/2+56));7)-34
Wielkanoc
2022-04-18 A5+1 Wielkanoc
2022-05-01 DATA(A1;5;1) 1 Maja
2022-05-03 DATA(A1;5;3) 3 Maja
2022-06-05 A5+49 Zielone Świątki
2022-06-16 A5+60 Boże Ciało
2022-08-15 DATA(A1;8;15) Wniebowzięcie
2022-11-01 DATA(A1;11;11) Wszystkich Świętych
2022-11-11 DATA(A1;11;1) Święto Niepodległości
2022-12-25 DATA(A1;12;25) Boże Narodzenie
2022-12-26 DATA(A1;12;26) Boże Narodzenie

Większość dat z powyższej tabeli wyznaczona jest za pomocą funkcji Excela Data(Rok,Miesiąc,Dzień) i wynika wprost z kalendarza. Zdecydowanie bardziej skomplikowane jest wyznaczenie daty Wielkanocy, przypadającej w danym roku na pierwszą niedzielę po wiosennej pełni księżyca. Jest kilka algorytmów obliczania tej daty, zainteresowanych odsyłam tu:

Wikipedia: wyznaczanie daty Wielkanocy

A skoro coś daje się obliczyć, to z pewnością da się to zrobić także w Excelu. Wynik widoczny jest w tabeli. Powiązane z Wielkanocą są także daty Zielonych Świątków oraz Bożego Ciała, przypadające w 49 i 60 dni po jej dacie.

W praktycznych rozwiązaniach (np. różnego rodzaju grafikach) najczęściej stosuję taką tabelę w osobnym (często ukrytym) arkuszu i przy sprawdzaniu czy w danym dniu wypada święto, korzystam z funkcji Wyszukaj.Pionowo.


 

%d bloggers like this: