Pokazywanie postów oznaczonych etykietą makra. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą makra. Pokaż wszystkie posty

piątek, 1 lutego 2013

Procedury w VBA

Procedura to zamknięty blok, w którym jest szereg instrukcji, które każemy "excelowi" wykonać aby osiągnąć zamierzony przez nas efekt. Procedura to to samo co makro.
Sub NazwaProcedury () 
  {Tutaj znajduje się ciało procedury
   czyli szereg instrukcji do wykonania
   ....................
Exit Sub <-tu można wcześniej zakończyć wykonywanie makra
   .. dalsze instrukcje}
End Sub  <-koniec procedury
NazwaProcedury może być dowolna wymyślona przez nas. Istnieje jednak kilka warunków :
- nazwa musi być jednym ciągiem tekstowym, czyli nie można używać spacji;
- nie można używać w nazwie następujących znaków :#,$,%,&,@,^,!.

Dobrym zwyczajem jest nadawanie nazw procedurom odnosząc się do tego co wykonują, np. Kopiowanie_zakresu, Ustawianie_wydruku itp.

Przed słowem kluczowym Sub mogą pojawić się nazwy Private lub Public.

Public oznacza, że procedura jest dostępna przez wszystkie procedury we wszystkich modułach skoroszytu . Wtedy początek wygląda np.:
Public Sub NazwaProcedury () 
     ....................
End Sub
Private oznacza, że procedura jest dostępna tylko dla innych procedur z tego samego modułu. Wtedy początek wygląda np.:
Private Sub NazwaProcedury() 
     ....................
End Sub 
Domyślnie procedury są publiczne, czyli jeśli nie określimy przed słowem Sub co to za typ procedury, to jest ona typu Public.

sobota, 26 stycznia 2013

Funkcja odwracająca ciąg tekstowy.

Poniżej wpisany jest kod dla funkcji służącej odwracaniu ciągu tekstowego. Być może przyda się komuś. Poniższy kod należy skopiować do modułu w edytorze VBA. Będzie on dostępny w skoroszycie w funkcjach użytkownika.

Function Odwroc_kolejnosc(Wyrazenie As String) As String  
 ' Zwraca odwrócony tekst  
 DlugoscCiagu = Len(Wyrazenie)  
 For i = DlugoscCiagu To 1 Step -1  
 znak = Right(Wyrazenie, 1)  
 Wyrazenie = Mid(Wyrazenie, 1, i - 1)  
 Odwroc_kolejnosc = Odwroc_kolejnosc + znak  
 Next i  
 End Function  

Zastosowanie :

Funkcje użytkownika.

W excelu mamy szereg funkcji z których możemy korzystać. Jednak czasami przydałyby się inne, które nie są dostępne w standardowym zbiorze funkcji. Możemy je sobie sami stworzyć. Oto w jaki sposób:

1. Otwieramy edytor VBA ( skrót ALT+F11).
2. Dodajemy moduł wybierając opcję INSERT a następnie MODULE.


3. Po wstawieniu modułu kopiujemy do niego kod funkcji, lub piszemy bezpośrednio w module.


4. Funkcja ta jest dostępna w skoroszycie po wybraniu funkcji użytkownika.


Nazwa jest taka sama jak nazwa funkcji we wklejonym kodzie.


Akurat przydatność tej funkcji jest praktycznie żadna, gdyż jest już ona dostępna w funkcjach tekstowych pod nazwą LITERY.WIELKIE






piątek, 9 grudnia 2011

Rejestrowanie makra

Zabawę z pisaniem makr w Excelu najlepiej rozpocząć od zarejestrowania makra. Czym jest rejestrator makr?Rejestrator makr przekłada nam czynności wykonywane w arkuszu Excela  na kod VBA. Na czym to polega? Nic prostszego. Rejestrowanie makra rozpoczynamy w następujący sposób :

  • Uruchamiamy Excela, żeby oglądać jak produkuje się kod nie maksymalizujemy okna.
  • Uruchamiamy edytor VBA poprzez Alt+F11, i rozmieszamy dwa okna Excela i edytora VBA obok siebie, dzięki temu będziemy mogli oglądać jak produkuje się kod.
  • Uruchamiamy rejestrator makr poprzez wybranie z menu Narzędzia opcji Zarejestruj nowe makro, w następujący sposób:                                                                                                                                                               
  • Po kliknięciu Zarejestruj makro i potwierdzeniu ok  utworzy się folder Modules  w edytorze:
  • Rozwijamy ten folder poprzez kliknięcie znaczka plus znajdującego się przy tym folderze i ukaże się nam Modules1, klikamy na niego dwa razy i otwiera nam się okienko kodu :
  • Teraz każda czynność wykonywana w Excelu będzie tłumaczona na kod VBA. Np. wybranie komórki "B15" i wpisanie w niej tekstu "Makro początki" powoduje wypisanie następującego kodu :
  • Aby zakończyć rejestrowania makra należy kliknąć Zatrzymaj rejestrowanie na widocznym pasku :

Należy wziąć pod uwagę, że taki kod nie jest ekonomiczny, tzn. na wykonanie jakieś prostej instrukcji produkuje się sporo kodu, gdy go sami stworzymy jest czytelniejszy i jest go mniej. Jednak gdy szukamy jakiejś funkcji to najprościej można ją znaleźć poprzez wykonanie czynności, dla której szukamy funkcji, podczas rejestrowania makra w Excelu, kod ten będzie widoczny właśnie w edytorze.

wtorek, 6 grudnia 2011

Edytor VBA


Są dwa sposoby, żeby otworzyć Edytor, pierwszy :
drugi oczywiście za pomocą skrótu Alt+F11.

Po otwarciu edytora w menu widok widzimy:

W okienku Code piszemy kod. Drugim okienkiem, z którego będziemy często korzystali jest okienko Object Browser - pomoc. To są dwa główne okna, które na początek nam wystarczą.

Przygodę z pisaniem makr najlepiej rozpocząć od rejestrowanie makra, na czym ono polega? W następnym poście