'********************************************************************************************************** ' Nazwa: naglowekKolumny ' Autor: mielk | 2012-02-22 ' ' Opis: Funkcja zwraca literowy symbol kolumny o określonym indeksie. ' ' Argumenty: ' indeksKolumny Numer kolumny, której symbol ma być zwrócony przez funkcję. ' * Argument musi być liczbą całkowitą większą od zera. Jeśli argument jest mniejszy ' lub równy zeru, zwracany jest wyjątek UjemnyIndeksKolumny. ' ' Zwraca: ' String Symbol kolumny o podanym numerze indeksu. ' * Jeżeli podany indeks kolumny jest mniejszy niż 0, zwracany jest pusty ' ciąg znaków. ' * Funkcja obsługuje większy zakres indeksów niż liczba kolumn w jakiejkolwiek ' wersji Excela, z uwagi na możliwe zwiększenie tej liczby w przyszłych wersjach ' Excela. ' ' ' Wyjątki: ' UjemnyIndeksKolumny Wywoływany kiedy numer kolumny przekazany do funkcji jest ujemny albo ' równy zero. ' ' ' --- Zmiany ---------------------------------------------------------------------------------------------- ' 2012-02-22 mielk Utworzenie funkcji. '********************************************************************************************************** Public Function naglowekKolumny(indeksKolumny As Long) As String Const NAZWA_METODY As String = "naglowekKolumny" '------------------------------------------------------------------------------------------------------ Const ALFABET_LICZNIK As Byte = 26 Const ASCII_PRZED_A As Byte = 64 '------------------------------------------------------------------------------------------------------ Dim lTemp As Long Dim iLitera As Integer '------------------------------------------------------------------------------------------------------ 'Funkcja sprawdza czy podany indeks kolumny jest większy od zera. Jeśli nie, wykonywanie kodu -------| 'przenoszone jest do wyjątku UjemnyIndeksKolumny. '| If indeksKolumny <= 0 Then GoTo UjemnyIndeksKolumny '| '----------------------------------------------------------------------------------------------------| '----------------------------------------------------------------------------------------------------| lTemp = VBA.Int(indeksKolumny) '| Do '| iLitera = lTemp Mod ALFABET_LICZNIK '| If iLitera = 0 Then iLitera = ALFABET_LICZNIK '| naglowekKolumny = VBA.Chr$(iLitera + ASCII_PRZED_A) & naglowekKolumny '| lTemp = Excel.WorksheetFunction.RoundUp((lTemp - ALFABET_LICZNIK) / ALFABET_LICZNIK, 0) '| Loop While lTemp > 0 '| '----------------------------------------------------------------------------------------------------| '========================================================================================================== PunktWyjscia: Exit Function '---------------------------------------------------- UjemnyIndeksKolumny: '(...) 'Obsługa błędów dla sytuacji, kiedy numer kolumny przekazany do funkcji jest ujemny lub równy zeru. GoTo PunktWyjscia End Function