Zdarzenie OnKey

Application.OnKey to metoda obiektu Application tworząca własne skróty klawiaturowe:

kliknij, aby powiększyć

Argumenty metody to:

      • Key – sekwencja klawiszy, która ma uruchomić 
        argument obowiązkowy
      • Procedure – nazwa procedury, która ma zostać uruchomiona
        argument opcjonalny

Argument Key występuje w sekwencji z klawiszami:

      • Shift: znak plus (+)
      • Ctrl: znak (^)
      • Alt: znak procentu (%).

Można tu używać zarówno liter jak i klawiszy funkcyjnych (w nawiasach klamrowych):

Klawisz Kod
Backspace {BACKSPACE} lub {BS}
Break {BREAK}
Caps Lock  {CAPSLOCK}
Delete lub Del  {DELETE} lub {DEL}
End (END}
Enter  ˜ (tylda)
Enter (na klawiaturze numerycznej)  {ENTER}
Escape  {ESCAPE} lub {esc]
Home  {HOME}
Ins  {INSERT}
NumLock  {NUMLOCK}
Page Down (PgDn)  {PGDN}
Page Up (PgUp)  {PGUP}
Scroll Lock  {SCROLLLOCK}
Strzałka w dół  {DOWN}
Strzałka w górę  {UP}
Strzałka w lewo  {LEFT}
Strzałka w prawo  {RIGHT}
Tab  {TAB}
F1 do F15  {F1} do {F15}

Wyłączenie tak wprowadzonego skrótu klawiszowego jest możliwe z zastosowaniem również metody Application.OnKey, ale bez drugiego argumentu czyli Proceudre 

W praktyce wygląda to tak: 

’ ============================
’ TEST Application.OnKey
’ ============================
’ Ustawienie skrótów klawiszowych
Public Sub SETUP_OnKey()
’ Ctrl + Shift + A – kolorowanie komórki
Application.OnKey „^+A”, „KolorujNaCzerwono”

’ Ctrl + Shift + B – wpisanie tekstu
Application.OnKey „^+B”, „WpiszTekst”

’ Ctrl + Shift + C – czyszczenie komórki
Application.OnKey „^+C”, „WyczyscKomorke”

’ Ctrl + Shift + D – komunikat
Application.OnKey „^+D”, „PokazKomunikat”

MsgBox „Skróty zarejestrowane.” & vbCrLf & _
„A = kolor” & vbCrLf & _
„B = wpisz tekst” & vbCrLf & _
„C = wyczyść komórkę” & vbCrLf & _
„D = komunikat”, vbInformation
End Sub
’ ============================
’ AKCJE POD SKRÓTY
’ ============================
Public Sub KolorujNaCzerwono()
ActiveCell.Interior.Color = RGB(255, 0, 0)
End Sub
Public Sub WpiszTekst()
ActiveCell.Value = „Test OnKey”
End Sub
Public Sub WyczyscKomorke()
ActiveCell.Clear
End Sub
Public Sub PokazKomunikat()
MsgBox „Działa!”, vbInformation
End Sub
’ ============================
’ WYŁĄCZENIE SKRÓTÓW
’ ============================
Public Sub Off_OnKey()
Application.OnKey „^+A”
Application.OnKey „^+B”
Application.OnKey „^+C”
Application.OnKey „^+D”
MsgBox „Skróty wyłączone.”, vbInformation
End Sub

Generalnie – przed zastosowaniem konkretnych przykładów – trzeba sprawdzić, czy na pewno zadziała. W niektórych przypadkach – niestety nie – tak jakby Excel miał wbudowaną blokadę własnych skrótów. 


kawa dla marzateli

A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Zdarzenie OnTime

Application.OnTime to metoda obiektu Application wywoływana zdarzeniem związanym z określonym czasem systemowym. 

Argumenty metody to:

      • EarliestTime – czas, kiedy procedura ma zostać uruchomiona
        argument obowiązkowy
      • Procedure – nazwa procedury, która ma zostać uruchomiona
        argument obowiązkowy
      • LatestTime- ostatni czas, kiedy procedura ma zostać uruchomona
        argument nieobowiązkowy
      • Schedule – powtarzalność. Argument decydujący, czy procedura ma być ponownie uruchomiona (wartość True) czy nie (wartość False).
        Argument opcjonalny, wartość domyślna True

Przykład procedury z wykorzystaniem metody OnTime – przez 20 minut, co minute jest wpisywany bieżący czas do kolejnych komórek kolumny K. 

’Zmienne globalne:
Public NastCzas As Date
Public CzasKoniec As Date
’ Uruchomienie cyklicznego wpisywania
Public Sub StartCzas()
CzasKoniec = Now + TimeValue(„00:20:00”)
WpiszCzas
End Sub
’ Procedura wpisująca czas i planująca kolejne wywołanie
Public Sub WpiszCzas()
Dim i As Long
i = Range(„K” & Rows.Count).End(xlUp).Row + 1
Range(„K” & i).Value = Now()
’ zaplanuj kolejne wywołanie za minutę
NastCzas = Now + TimeValue(„00:01:00”)
Application.OnTime EarliestTime:=NastCzas, Procedure:=”WpiszCzas”, LatestTime:=CzasKoniec, Schedule:=True
End Sub

 


Kurs Excel programowanie w VBA

 

Aktywowanie arkusza

Aktywowanie arkusza to jedna z metod obiektu VBA Worksheet
Może występować również w modułach ogólnych VBA. 

kliknij, aby powiększyć

Metoda ta powoduje aktywację czyli przejście do konkretnego arkusza.  Arkusz nie może być ukryty. Istotne jest też to, że po wywołaniu tej metody nastąpi automatyczne uruchomienie zdarzenia arkusza po aktywacji

Po aktywowaniu arkusza – staje się on arkuszem aktywnym, w VBA można w stosunku do niego używać również nazwy ActiveSheet

Jest to jednak z częściej używanych metod obiektu VBA Worksheet


A tu możesz mi postawić kawę: 

Metoda Workbooks.Close

WorkBooks.Close to jedna z metod obiektu Workbooks zamykająca skoroszyt. 

kliknij, aby powiększyć

Argumenty metody to:

kliknij, aby powiększyć
      • SaveChanges
        zapisywanie zmian. Jeżeli argument zostanie pominięty, a w skoroszycie są zmiany, pojawi się pytanie czy je zapisać. Wartość True powoduje zapisanie i zamknięcie skoroszytu,  wartość False  – zamknięcie bez zapisywania. 
      • FileName
        nazwa, pod jaką zostanie zapisany plik. Jeżeli argument jest pominięty, argument 1 jest True, zostanie zapisany pod nazwą bieżącą. 
      • RouteWorkBook
        argument True lub False, istotny przy pliku udostepnionym. Decyduje, czy plik powinien zostać wysłany do kolejnego użytkownika. 

Wszystkie te argumenty są opcjonalne.

Stosuje się ją najczęściej, gdy procedurą w jednym pliku otwieramy inny plik, pobieramy/edytujemy/zapisujemy dane, a następnie go zamykamy. 
Np. 

Public Sub PobierzDane()
Dim WBK As Workbook
Set WBK = Workbooks.Open(„E:\AKTUAL\Wprawki\BlogMarzatela\Excel\Wprawki2.xlsm”, , True)

’ciag instrukcji związanych z pobraniem danych

WBK.Close
Set WBK = Nothing
End Sub

Jeżeli w pliku jest zdefiniowane zdarzenia skoroszytu  – automatycznie zostaną uruchomione.


Kurs Makra w Excelu 365 od podstaw

 

Metoda WorkBooks.Open

WorkBooks.Open to jedna z metod tag: obiekt Workbooks otwierająca inny plik. 

kliknij, aby powiększyć

Argumenty metody to:

      • FileName
        argument obowiązkowy, typu String. Nazwa pliku do otwarcia
      • UpdateLinks
        jeżeli w otwieranym pliku są łącza: wstawienie wartości argumentu jako True – odświeża je, False – nie odświeża. Pozostawienie argumentu jako pusty – spowoduje wyświetlenie zapytania co zrobić z łączami. 
      • ReadOnly
        wstawienie tu wartości True powoduje, że otwierany plik będzie tylko do odczytu
      • Format
        jeżeli otwierany plik to plik tekstowy (np.plik csv) , tu możemy wstawić tryb separatora:

          • 1 – tabulator
          • 2 – przecinek
          • 3 – spacja
          • 4 – średnik
          • 5 – nic
          • 6 – znak niestandardowy
      • Password
        ewentualne hasło do otwarcia  pliku
      • WritePassword
        ewentualne hasło do zapisu  pliku
      • IgnoreReadOnlyRecommended
        True do zignorowania rekomendacji tylko do odczytu
      • Origin
        dla plików tekstowych – pochodzenie pliku, strona kodowa i system operacyjny
      • Delimiter
        jeżeli argument Format ma wartość 6 – tu wstawiamy rozdzielający  znak niestandardowy 
      • Editable
        jeżeli otwierany plik jest szablonem: wartość True, aby go edytować. Domyślna wartość False – twory nowy skoroszyt na podstawie tego szablonu
      • Notify
        jeżeli plik jest niedostępny i nie można go otworzyć, ustawienie argumentu na True spowoduje wyświetlenie komunikatu, gdy zmieni się status i można go już otworzyć
      • Converter
        indeks pierwszego konwertera do otwarcia pliku
      • AddToMru 
        ustawienie na True powoduje, że plik zostanie dodany do listy ostatnio używanych plików
      • Local
        ustawienie na True -plik jest zapisywany w języku ustawień Excela, False – język VBA (czyli angielski) 
      • CorruptLoad
        sposób postępowania przy uszkodzonym pliku:

        • xlNormalLoad – normalnie
        •  xlRepairFile – napraw
        • xlExtractData – tylko dane

Metoda Workbooks.Open jest bardzo często stosowana. Otwieramy inny plik, pobieramy/edytujemy dane, a następnie zamykamy go.  

Jeżeli w otwieranym pliku jest zdefiniowane zdarzenie skoroszytu przy otwarciuaktywacji lub deaktywacji skoroszytu – automatycznie też zostaną uruchomione.


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela