Funkcja Format
Funkcja Format zwraca wartość typu Variant(String) sformatowną odpowiednio do instrukcji zawartych w wyrażeniu Format.
Składnia funkcji Format:
Format (Wyrażenie[, Format [, PierwszyDzieńTygodnia[, PierwszyTydzieńRoku]]])
Składnia funkcji Format składa się z następujących części:
Wyrażenie |
wymagane, jakiekolwiek poprawne wyrażenie |
Format |
opcjonalne, nazwa lub zdefiniowane przez użytkownika wyrażenie formatujące |
PierwszyDzieńTygodnia |
opcjonalna wartość lub stała określająca pierwszy dzień tygodnia |
PierwszyTydzieńRoku |
opcjonalna wartość lub stała określająca pierwszy tydzień roku |
Wartości i stałe dla argumentu PierwszyDzieńTygodnia:
Stała |
Wartość |
Opis |
vbUseSystem |
0 |
Użyj ustawień NLS API |
vbSunday |
1 |
Niedziela (domyślna) |
vbMonday |
2 |
Poniedziałek |
vbTuesday |
3 |
Wtorek |
vbWednesday |
4 |
Środa |
vbThursday |
5 |
Czwartek |
vbFriday |
6 |
Piątek |
vbSaturday |
7 |
Sobota |
Wartości i stałe dla argumentu PierwszyTydzieńRoku:
Stała |
Wartość |
Opis |
vbUseSystem |
0 |
Użyj ustawień NLS API |
vbFirstJan |
1 |
Tydzień zawierający 1 stycznia (domyślnie) |
vbFirstFourDays |
2 |
Pierwszy tydzień, w którym są co najmniej 4 dni nowego roku |
vbFirstFullWeek |
2 |
Pierwszy pełny tydzień nowego roku. |
na górę strony...
Przy formatowaniu liczby bez określania argumentu Format, funkcja Format działa podobnie do funkcji Str. Jednak, dodatnie liczby sformatowane jako łańcuch przy użyciu funkcji Format nie zawierają miejsca zarezerwowanego na znak liczby; liczby konwertowane funkcją Str zachowują miejsce na znak.
Różne formaty dla różnych wartości numerycznych
Wyrażenie Format zdefiniowane przez użytkownika dla liczb może mieć od jednej do czterech sekcji oddzielonych od siebie średnikami. Jeżeli argument Format zawiera jeden z formatów numerycznych to tylko jedna sekcja jest dozwolona.
Przy użyciu |
Otrzymany wynik |
Tylko jednej sekcji |
Wyrażenie Format stosowane do wszystkich wartości |
Dwóch sekcji |
Pierwsza sekcja stosowana jest do dodatnich wartości i zera, druga do ujemnych wartości. |
Trzech sekcji |
Pierwsza sekcja stosowana jest do dodatnich wartości, druga do ujemnych wartości, trzecia do zera. |
Czterech sekcji |
Pierwsza sekcja stosowana jest do dodatnich wartości, druga do ujemnych wartości, trzecia do zera, a czwarta do wartości Null. |
na górę strony...
Poniższy przykład ma dwie sekcje, pierwsza definiuje format dla dodatnich wartości i zera, druga definiuje format dla ujemnych wartości:
"$#,##0;($#,##0)"
Przy użyciu średników, bez żadnych znaków między nimi, opuszczona sekcja jest wyświetlana z użyciem formatu dla dodatnich wartości. Na przykład, poniższy format wyświetla dodatnie i ujemne wartości używając formatu pierwszej sekcji i wyświetla "Zero" jeżeli wartość jest zero:
"$#,###;;\Z\e\r\o"
na górę strony...
Różne formaty dla różnych łańcuchowych wartości
Wyrażenie Format dla łańcuchów może mieć jedną lub dwie sekcje oddzielone przez średniki.
Przy użyciu |
Otrzymany wynik |
Tylko jednej sekcji |
Wyrażenie Format stosowane do wszystkich danych string. |
Dwóch sekcji |
Pierwsza sekcja stosowana jest do danych łańcuchowych, druga do wartości Null i do pustych łańcuchów (""). |
na górę strony...
Zdefiniowane formaty Data/Czas
Poniższa tabela opisuje zdefiniowane nazwy formatów daty i czasu:
Nazwa formatu |
Opis |
General Date |
Wyświetla datę i/lub czas. Dla liczb rzeczywistych, wyświetla datę i czas, np. 4/3/93 05:34 PM. Jeżeli nie ma części ułamkowej, wyświetla tylko datę, np. 4/3/93. Jeżeli nie ma części całkowitej, wyświetla tylko czas, np. 05:34 PM. Wyświetlanie daty jest określone przez ustawienia systemowe. |
Long Date |
Wyświetla datę według formatu długiej daty ustawionego w systemie |
Medium Date |
Wyświetla datę używając formatu średniej daty odpowiedniego do wersji języka aplikacji typu host. |
Short Date |
Wyświetla datę według formatu krótkiej daty systemowej |
Long Time |
Wyświetla czas używając formatu długiego czasu systemu, zawierającego godziny, minuty, sekundy |
Medium Time |
Wyświetla czas w 12 godzinnym formacie, używając godzin i minut oraz określnika AM/PM |
Short Time |
Wyświetla czas używając 24-godzinnego formatu, na przykład 17:45.
|
na górę strony...
Formaty Data/Czas zdefiniowane przez użytkownika
Poniższa tabela opisuje znaki jakie można używać do tworzenia formatów data/czas zdefiniowanych przez użytkownika:
Znak |
Opis |
(:) |
Separator czasu. W pewnych lokalnych ustawieniach, inne znaki mogą być użyte jako separatory czasu. Separator czasu oddziela godziny, minuty i sekundy, gdy wartości czasu są formatowane. Aktualny znak użyty jako separator czasu w sformatowanym wyjściu jest określony przez ustawienia systemowe. |
(/) |
Separtor daty. W pewnych lokalnych ustawieniach, inne znaki mogą być użyte jako separatory daty. Separator daty oddziela dzień, miesiąc i rok, gdy wartości daty są formatowane. Aktualny znak użyty jako separator daty w sformatowanym wyjściu jest określony przez ustawienia systemowe. |
c |
Wyświetla datę jako ddddd i czas jako ttttt, w tej kolejności. Wyświetla tylko datę jeżeli nie ma częćci ułamkowej do wartości liczbowej daty, i wyświetla tylko czas jeżeli nie ma części całkowitej. |
d |
Wyświetla dzień jako liczbę bez zera na początku (1-31). |
dd |
Wyświetla dzień jako liczbę z zerem na początku (01-31). |
ddd |
Wyświetla dzień w skrócie (Sun-Sat). |
dddd |
Wyświetla dzień jako pełną nazwę (Sunday-Saturday). |
ddddd |
Wyświetla datę jako kompletną datę (włączając dzień, miesiąc i rok), sformatowaną odpowiednio do ustwień formatu krótkiej daty systemu. Dla Microsoft Windows standardowy format krótkiej daty to m/d/yy. |
dddddd |
Wyświetla wartość liczbową daty jako kompletną datę (włączając dzień, miesiąc i rok) sformatowaną odpowiednio do ustawień długiej daty systemu. Dla Microsoft Windows, standardowy format long date to mmmm dd, yyyy. |
w |
Wyświetla dzień tygodnia jako liczbę (1 dla Niedzieli do 7 dla Soboty) |
ww |
Wyświetla tydzień w roku jako liczbę (1-54) |
m |
Wyświetla miesiąc jako liczbę bez zera na początku (1-12). Jeżeli m nastepuje bezpośrednio po h lub hh, wtedy zostaną wyświetlone minuty zamiast miesiąca. |
mm |
Wyświetla miesiąc jako liczbę z zerem na początku (01-12). Jeżeli m nastepuje bezpośrednio po h lub hh, wtedy zostaną wyświetlone minuty zamiast miesiąca. |
mmm |
Wyświetla miesiąc jako jako skrót (Jan-Dec). |
mmmm |
Wyświetla miesiąc jako pełną nazwę (January-December) |
q |
Wyświetla kwartał roku jako liczbę (1-4). |
y |
Wyświetla dzień w roku jako liczbę (1-366). |
yy |
Wyświetla rok jako dwucyfrową liczbę (00-99). |
yyyy |
Wyświetla rok jako czterocyfrową liczbę (100-9999). |
h |
Wyświetla godzinę jako liczbę bez zera na początku (0-23). |
hh |
Wyświetla godzinę jako liczbę z zerem na początku (00-23) |
n |
Wyświetla minuty jako liczbę bez zera na początku (0-59). |
nn |
Wyświetla minuty jako liczbę z zerem na początku (00-59) |
s |
Wyświetla sekundy jako liczbę bez zera na początku (0-59). |
nn |
Wyświetla sekundy jako liczbę z zerem na początku (00-59). |
ttttt |
Wyświetla czas jako kompletny czas (włączając godziny, minuty, sekundy), sformatowany przy użyciu separatorów czasu zdefiniowanych przez format czasu rozpoznany przez system. Początkowe zera są wyświetlane jeżeli jest ustawiona opcja początkowych zer i czas jest przed 10:00 A.M. lub P.M. Dla Microsoft Windows standardowy format czasu to h:mm:ss. |
AM/PM |
Używa 12-godzinnego zegara i wyświetla litery AM z każdą godziną przed południem. natomiast litery PM z każdą godziną pomiędzy południem a 11:59 PM |
am/pm |
Używa 12-godzinnego zegara i wyświetla małe litery AM z każdą godziną przed południem. Natomiast małe litery PM z każdą godziną pomiędzy południem a 11:59 P.M. |
A/P |
Używa 12-godzinnego zegara i wyświetla literę A z każdą godziną przed południem. natomiast literę P z każdą godziną pomiędzy południem a 11:59 PM |
a/p |
Używa 12-godzinnego zegara i wyświetla małą literę A z każdą godziną przed południem. natomiast małą literę P z każdą godziną pomiędzy południem a 11:59 PM |
AM/PM |
Używa 12-godzinnego zegara i wyświetla łańcuch AM określony przez system, z każdą godziną przed południem. Natomiast łańcuch PM określony przez system, z każdą godziną pomiędzy południem a 11:59 P.M. AM/PM mogą być wyświetlane jak małe lub duże litery, ale zależy to od łańcucha zdefiniowanego przez ustwienia systemowe. Dla Microsoft Windows standardowy format to AM/PM. |
na górę strony...
Zdefiniowane formaty numeryczne
Poniższa tabela opisuje zdefiniowane nazwy formatów numerycznych:
Nazwa formatu |
Opis |
General Number |
Wyświetla liczbę bez separatora tysięcy |
Currency |
Wyświetla liczbę z separatorem tysięcy, jeżeli jest potrzebny; wyświetla dwie cyfry do prawej strony separatora dziesiętnego. Formatowanie jest oparte na ustwieniach lokalnych w systemie. |
Fixed |
Wyświetla przynajmniej jedną cyfrę od lewej i dwie cyfry od prawej strony separatora dziesiętnego. |
Standard |
Wyświetla liczbę z separatorem tysięcy, przynajmniej jedną cyfrę od lewej i dwie cyfry od prawej strony separatora dziesiętnego. |
Percent |
Wyświetla liczbę pomnożoną przez 100 ze znakiem procentu (%) dołączonym do prawej strony, zawsze wyświetla dwie cyfry po prawej stronie separatora dziesiętnego. |
Scentific |
Używa standardowego formatu wykładniczego. |
Yes/No |
Wyświetla Nie(No) jeżeli liczba jest 0, w przeciwnym przypadku wyświetla Tak(Yes). |
True/False |
Wyświetla False jeżeli liczba jest 0, w przeciwnym przypadku wyświetla True. |
On/Off |
Wyświetla Off jeżeli liczba jest 0, w przeciwnym przypadku wyświetla On. |
na górę strony...
Formaty numeryczne zdefiniowane przez użytkownika
Poniższa tabela opisuje znaki jakie można używać do tworzenia formatów numerycznych zdefiniowanych przez użytkownika:
Znak |
Opis |
None |
Wyświetla niesformatowaną liczbę. |
(0) |
Znak pola. Wyświetla cyfrę lub zero. Jeżeli wyrażenie ma cyfrę na pozycji gdzie występuje 0 w wyrażeniu Format, wyświetla ją, w przeciwnym wypadku wyświetla zero na tej pozycji. Jeżeli wyrażenie ma mniej pozycji niż jest zer po obu stronach kropki dziesiętnej w określonym formacie, to do wyświetlanej liczby są dodawane zera. W przypadku, gdy wyrażenie ma więcej pozycji z lewej strony kropki dziesiętnej, to dodatkowe pozycje zostaną wyświetlone; gdy zaś z prawej strony, to zostaną obcięte. |
(#) |
Znak pola. Wyświetla cyfrę lub nic. Jeżeli wyrażenie ma cyfrę na pozycji gdzie występuje 0 w wyrażeniu Format, wyświetla ją, w przeciwnym przypadku nic nie wyświetla na tej pozycji. Działa tak samo jak znak 0, z tą różnicą, że w przypadku, gdy wyrażenie ma mniej pozycji niż jest zer po obu stronach kropki dzisiętnej w określonym formacie, to do wyświetlanej liczby nie są dodawane zera. |
(.) |
Znak dziesiętny. W niektórych lokalnych ustawieniach, przecinek jest używany jako separator dzisiętny. Znak dziesiętny określa pozycję kropki dzisiętnej w utworzonym formacie. Jeżeli z lewej strony tego znaku nie ma znaków pola, to liczby mniejsze od 1 zaczynane są znakiem dzisiętnym. Aby wyświetlić zero na początku wyświetlanej liczby ułamkowej, należy użyć znaku 0 jako pierwszego znaku pola po lewej stronie znaku dziesiętnego. Znak używany jako znak dzisiętny w formatowanym wyjściu zależy od formatu nnumerycznego rozpoznawanego przez system. |
(%) |
Znak procentu. Jest wstawiany do wyrażenia na pozycję, na której ma być wyświetlony. Wyrażenie jest mnożone przez 100. |
(,) |
Separator tysięcy. W niektórych lokalnych ustawieniach, przecinek jest używany jako separator tysięcy. Separator tysięcy oddziela od siebie tysiące i setki w liczbie, która ma cztery lub więcej miejsc po lewej stronie separatora dziesiętnego. Standardowe użycie separatora tysięcy jest określone, jeżeli format zawiera separator tysięcy otoczony przez znaki pola (0 lub #). Dwa bezpośrednio do siebie przylegające separatory tysięcy lub separator tysięcy bezpośrednio po lewej stronie separatora dziesiętnego, oznaczają, że wielkość liczby, jeżeli jest to potrzebne, jest dzielona przez 1000. Na przykład, można użyć wyrażenia format "##0,," do przedstawienia liczy 100 milionów jako 100. Liczby mniejsze niż 1 milion są wyświetlane jako 0. Dwa bezpośrednio po sobie następujące separatory tysięcy w jakiejkolwiek innej pozycji, niż po lewej stronie znaku dziesiętnego, są traktowane jako normalne separatory tysięcy. Znak używany jako separator tysięcy w formatowanym wyjściu zależy od formatu nnumerycznego rozpoznawanego przez system. |
(:) |
Separator czasu. W niektórych lokalnych ustawieniach, inne znaki mogą być używane jako separatory czasu. Separator czasu oddziela od siebie godziny, minuty i sekundy, gdy wartość czasu jest formatowana. Znak używany jako separator czasu w formatowanym wyjściu jest określony przez ustawienia systemu. |
(/) |
Separator daty. W niektórych lokalnych ustawieniach, inne znaki mogą być używane jako separatory daty. Separator daty oddziela od siebie dzień, miesiąc i rok, gdy wartość daty jest formatowana. Znak używany jako separator daty w formatowanym wyjściu jest określony przez ustawienia systemu. |
(E+ E- e+ e-) |
Format wykładniczy. Umieszczenie jednego z symboli wykładniczych z prawej strony znaków pola powoduje, że liczba jest wyświetlana w formacie wykładniczym. Litera E lub e jest umieszczona między liczbą a wykładnikiem. Dla liczb ujemnych należy użyć symboli z minusem. Liczbę znaków wykładnika potęgi określa się za pomocą znaków pola umieszczonych z prawej strony symbolu wykładniczego. |
- + $ ( ) |
Wyświetla znak literowy. Do wyświetlenia znaków innych niż wymienione, należy je poprzedzić backslashem (\) lub zamknąć w dwóch znakach cudzysłowia (" "). |
(\) |
Znak zezwolenia. Pozwala na wyświetlenie znaków używanych do formatowania. Aby wyświetlić taki znak należy poprzedzić go znakiem zezwolenia. Aby wyświetlić znak zezwolenia należy użyć go podwójnie. Przykłady znaków, które nie mogą być normalnie wyświetlane: znaki formatowania daty i czasu (a, c, d, h, m, n, p, q, s, t, w, y, /, :), znaki formatowania numerycznego (#, 0, %, E, e, przecinek, kropka), znaki formatowania łańcuchowego (@, &, <, >, !) |
("ABC") |
Wyświetla łańcuch zawarty między dwoma znakami cudzysłowia (" "). Aby włączyć łąńcuch do argumentu Format z kodu, należy użyć Chr(34) do załączenia tekstu (34 jest kodem znaku cudzysłowia (")). |
na górę strony...
Formaty łańcuchowe zdefiniowane przez użytkownika
Poniższa tabela opisuje znaki jakie można używać do tworzenia wyrażenia Format dla łańcuchów:
Znak |
Opis |
@ |
Miejsce na znak. Wyświetla znak albo spację. Jeżeli łańcuch zawiera znak na pozycji gdzie jest symbol (@) w wyrażeniu Format, wyświetla go, w przeciwnym wypadku wyświetla spację na tej pozycji. Miejsca na znaki są wypełniane od prawej strony do lewej, o ile nie występuje znak wykrzyknika (!) w wyrażeniu Format. |
& |
Miejsce na znak. Wyświetla znak lub nic. Jeżeli łańcuch zawiera znak na pozycji gdzie jest symbol (&) w wyrażeniu Format, wyświetla go, w przeciwnym wypadku nie wyświetla nic. Miejsca na znaki są wypełniane od prawej strony do lewej, o ile nie występuje znak wykrzyknika (!) w wyrażeniu Format. |
< |
Wyświetla wszystkie znaki w formacie małych liter. |
> |
Wyświetla wszystkie znaki w formacie dużych liter. |
! |
Powoduje wypełnianie miejsc na znaki od lewej do prawej. Standardowo są wypełniane od prawej do lewej. |
na górę strony...
Przykład użycia funkcji Format:
Dim varCzas, varData, varStr
varCzas = #17:04:23#
varData = #January 27, 1993#
varStr = Format(Time, "Long Time")
'zwraca bieżący czas w formacie krótkiego czasu
varStr = Format(Date, "Long Date")
'zwraca datę w formacie długiej daty
varStr = Format(varCzas, "h:m:s")
'zwraca "17:4:23"
varStr = Format(varCzas, "hh:mm:ss AMPM")
'zwraca "05:04:23 PM"
varStr = Format(varData, "dddd, mmm d yyyy")
'zwraca "Wednesday, Jan 27 1993"
varStr = Format(23)
'zwraca "23"
' User-defined formats.
varStr = Format(5459.4, "##,##0.00")
'zwraca "5,459.40"
varStr = Format(334.9, "###0.00")
'zwraca "334.90"
varStr = Format(5, "0.00%")
'zwraca "500.00%"
varStr = Format("HELLO", "<")
'zwraca "hello"
varStr = Format("To jest TO", ">")
'zwraca "TO JEST TO"
(Zmienne i typy zmiennych, funkcje Date i Time zostały opisane w innych częściach kursu.)
na górę strony...
|