Właściwości obiektu Range

Najpopularniejsze właściwości obiektu Range w kodzie VBA to:

  • adres zakresu
    • Address -zwraca adres zakresu lub nazwę obiektu Range
  • liczba obiektów
    • Count – liczba obiektów w Range. Dla zakresu komórek zwracana jest ich liczba
  • przesunięcie
    • Offset -przesunięcie o określoną liczbę wierszy i kolumn od obiektu Range
  • położenie
    • Top – zwraca położenie od góry górnego wierzchołka obiektu Range
    • Left – zwraca położenie od lewej strony wierzchołka obiektu Range
  • wartość
    • Value – wartość zakresu (np.komórki). Jest to właściwość domyślna obiektu Range

Tak, jak w przypadku metod obiektu Range chcąc wywołać daną właściwość, po nawiasie zamykającym oznaczenie obiektu wstawiamy kropkę i wybieramy z listy rozwijalnej daną właściwość.


 

Kurs Excel programowanie w VBA

Metody obiektu Range

Najczęściej stosowane metody obiektu Range (czyli komórki lub zakresu komórek) to:

    • czyszczenie zakresu
      • Clear
        całkowite usunięcie treści, formatowania, obramowania wyrównania i komentarzy
      • ClearComments
        usuwanie komentarzy
      • ClearContents
        usuwanie treści i formuł
      • ClearFormats
        czyszczenie formatowania
    • kopiowanie, wycinanie, usuwanie
      • Copy
        cały zakres zostaje skopiowany do schowka
      • Cut
        komórki zakresu zostają wycięte i przekopiowanie do schowka
      • Delete
        usuwanie zakresu komórek
    • zaznaczanie
        • Select
          zaznaczanie zakresu
    • scalanie, rozcalanie
        • Merge
          scalenie komórek w zakresie
        • UnMerge
          rozcalenie komórek w zakresie

Jak to wygląda w praktyce? Najprościej daną metodę wybrać z rozwijalnej listy właściwości i metod uaktywnianej po wstawieniu kropki za oznaczeniem zakresu:

Oznaczenia metod to:

 

Oznaczenia właściwości to:

 

Przykładowy fragment kodu zaznaczającego zakres wygląda tak:

Public Sub CzyscZakres()
Dim Zakres As Range
SET ZakresA=Range(“A1:A10”)
Zakres.Clear
End Sub

lub np.tak:

Public Sub ZaznaczZakres()
Range(“A1:A10”).Select
End Sub

 


Obiekt Range

Range to obiekt w kodzie VBA oznaczający komórkę lub zakres komórek arkusza.
Dla pojedynczej komórki zapis wygląda np. Range(“A1”)
Dla ciągłego zakresu komórek – np. Range(“A1:C10”) lub Range(“A1″,”C10”) – gdzie A1 to adres komórki w lewym górnym rogu, natomiast C1 to komórka wyznaczająca prawy dolny róg.

Można też przypisać całe kolumny lub wiersze, odwołując się do oznaczenia kolumny lub numeru wiersza.
Np. Range(“1:1”) – odpowiada zakresowi wiersza pierwszego
Range(“A:C”) – zakres kolumn A do C.
W kodzie można odwoływać się także do nazw zdefiniowanych w Menedżerze nazw. Jeżeli mamy taki zakres o nazwie np.MojeKomorki, to można się odwołać do niego poprzez Range(“MojeKomorki”).

Chcąc zadeklarować zakres jako zmienną w kodzie VBA korzystamy z:

Dim ZakresA As Range
Dim ZakresB As Range

Przypisanie wartości (czyli zakresu komórek) do zmiennej typu Range musi być, jak w przypadku wszystkich obiektów VBA, poprzedzone słowem kluczowym Set.

Set ZakresA=Range(“1:1”)
Set ZakresB = Range(“A:A”)

W odniesieniu zakresu Range często wykorzystuje się funkcje:

    • Intersect(Arg1 as Range, Arg1 as Range,… as Range
      funkcja zwracająca zakres będący częścią wspólną zakresów wprowadzonych jako argumenty
    • Union(Arg1 as Range, Arg1 as Range,… as Range
      funkcja zwracająca zakres będący sumą zakresów wprowadzonych jako argumenty

Obie funkcje przydają się szczególnie w kodzie związanym ze zdarzeniami arkusza.

 


 

 

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

 

Komórki scalone w VBA

Scalanie komórek kodem VBA jest możliwe przy użyciu metody Merge obiektu Range.

Np. dla komórek z zakresu A1:A10

Range(“A1:A10”).Merge

Zdjęcie scalenia to metoda UnMerge

Range(“A1:A10”).UnMerge

To, co istotne w metodach stosowanych w odniesieniu do komórek scalonych (m.in. ClearContents) nie można się odwołać do pojedynczej komórki scalonego zakresu  – trzeba jako Range wpisać cały zakres.

 


 

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