Przykład na tworzenie własnej zmiennej typu Range i posługiwanie się właściwościami obiektu Range, typu Range:
- CurrentRegion
- Rows(W)
- Columns(K)
- Cells(W,K)
Sub WlasnaZmiennaRange()
Dim Zakres As Range
Dim LW As Long, LK As Long
'sprawdzenie, czy aktywna komórka znajduje się
'w zakresie danych, przy pomocy własnej funkcji logicznej
If fnBrakZakresu Then Exit Sub
'ustawienie referencji do obiektu
'na podstawie właściwości "Bieżący obszar" aktywnej komórki
Set Zakres = ActiveCell.CurrentRegion
'kolorowanie zakresu poprzez własną zmienną
Zakres.Interior.ColorIndex = 35
'odczyt liczby wierszy i kolumn zakresu
LW = Zakres.Rows.Count
LK = Zakres.Columns.Count
'wyświetlenie wartości zmiennych w oknie debuggera
Debug.Print "lw: " & LW
Debug.Print "lk: " & LK
'kolorowanie skrajnych wierszy
Zakres.Rows(1).Interior.ColorIndex = 34
Zakres.Rows(LW).Interior.ColorIndex = 34
'i kolumn
Zakres.Columns(1).Interior.ColorIndex = 34
Zakres.Columns(LK).Interior.ColorIndex = 34
'kolorowanie narożników zakresu
Zakres.Cells(1, 1).Interior.ColorIndex = 36
Zakres.Cells(1, LK).Interior.ColorIndex = 36
Zakres.Cells(LW, 1).Interior.ColorIndex = 36
Zakres.Cells(LW, LK).Interior.ColorIndex = 36
End Sub |
Sub WlasnaZmiennaRange()
Dim Zakres As Range
Dim LW As Long, LK As Long
'sprawdzenie, czy aktywna komórka znajduje się
'w zakresie danych, przy pomocy własnej funkcji logicznej
If fnBrakZakresu Then Exit Sub
'ustawienie referencji do obiektu
'na podstawie właściwości "Bieżący obszar" aktywnej komórki
Set Zakres = ActiveCell.CurrentRegion
'kolorowanie zakresu poprzez własną zmienną
Zakres.Interior.ColorIndex = 35
'odczyt liczby wierszy i kolumn zakresu
LW = Zakres.Rows.Count
LK = Zakres.Columns.Count
'wyświetlenie wartości zmiennych w oknie debuggera
Debug.Print "lw: " & LW
Debug.Print "lk: " & LK
'kolorowanie skrajnych wierszy
Zakres.Rows(1).Interior.ColorIndex = 34
Zakres.Rows(LW).Interior.ColorIndex = 34
'i kolumn
Zakres.Columns(1).Interior.ColorIndex = 34
Zakres.Columns(LK).Interior.ColorIndex = 34
'kolorowanie narożników zakresu
Zakres.Cells(1, 1).Interior.ColorIndex = 36
Zakres.Cells(1, LK).Interior.ColorIndex = 36
Zakres.Cells(LW, 1).Interior.ColorIndex = 36
Zakres.Cells(LW, LK).Interior.ColorIndex = 36
End Sub
Na koniec funkcja logiczna, z której korzysta powyższa procedura:
Function fnBrakZakresu() As Boolean
If Len(ActiveCell) = 0 Then
MsgBox "Ustaw się w niepustej komórce zakresu danych!"
fnBrakZakresu = True
End If
End Function |
Function fnBrakZakresu() As Boolean
If Len(ActiveCell) = 0 Then
MsgBox "Ustaw się w niepustej komórce zakresu danych!"
fnBrakZakresu = True
End If
End Function