Visual Basic for Application Formatowanie wyrae w VBA
Visual Basic for Application
Formatowanie wyrażeń w VBA Formatowaniu mogą podlegać: • Liczby • Daty i czas • Łańcuchy znaków Visual Basic for Application 2
Formatowanie Funkcja Format zwraca wartość typu Variant(String) sformatowaną odpowiednio do instrukcji zawartych w wyrażeniu Format (Wyrazenie[. Format[. Pierwszy. DzieńTygodnia[. Pierwszy. DzieńRoku]]]) Gdzie: Wyrażenie (wymagany) – dowolne poprawne wyrażenie Format (opcja) nazwa lub zdefiniowane przez użytkownika wyrażenie formatujące Visual Basic for Application 3
Formatowanie • Poniższe przykłady pokażą różne sposoby użycia funkcji Format do formatowania wartości zarówno za pomocą predefiniowanych formatów standardowych, jak i formatów zdefiniowanych na własny użytek przez użytkownika • Jeżeli format nie jest zdefiniowany, funkcja Format zwraca przekazany łańcuch • My. Str = Format(23) Visual Basic for Application Returns "23" 4
Formatowanie liczb • Do formatowania liczb można użyć predefiniowanych formatów numerycznych lub formatów zdefiniowanych przez użytkownika Visual Basic for Application 5
Zdefiniowane formaty numeryczne • General Number – wyświetla liczbę bez separatora tysięcy Format(123456, "General Number") Visual Basic for Application 6
Zdefiniowane formaty numeryczne • Currency – wyświetla liczbę z separatorem tysięcy, jeśli jest potrzebny; wyświetla dwie cyfry do prawej strony separatora dziesiętnego. Formatowanie jest oparte na ustawieniach lokalnych w systemie Format(123456, "Currency") Visual Basic for Application 7
Zdefiniowane formaty numeryczne • Fixed – Wyświetla przynajmniej jedną cyfrę od lewej i dwie cyfry od prawej strony separatora dziesiętnego Format(123456, "Fixed") Visual Basic for Application 8
Zdefiniowane formaty numeryczne • Standard – Wyświetla liczbę z separatorem tysięcy, przynajmniej jedną cyfrę od lewej i dwie cyfry od prawej separatora dziesiętnego: Format(123456, "Standard") Visual Basic for Application 9
Zdefiniowane formaty numeryczne • Percent – Wyświetla liczbę pomnożoną przez 100 ze znakiem (%) dołączonym do prawej strony, zawsze wyświetla dwie cyfry po prawej stronie separatora dziesiętnego: Format(0. 25, "Percent") Visual Basic for Application 10
Zdefiniowane formaty numeryczne • Scientific – używa standardowego formatu wykładniczego: Format(123456, "Scientific") Visual Basic for Application 11
Zdefiniowane formaty numeryczne • Yes/No – Wyświetla Nie (No), jeżeli liczba jest 0, w przeciwnym przypadku wyświetla Tak (Yes): Format(123456, "Yes/No") Format(0, "Yes/No") Visual Basic for Application 12
Zdefiniowane formaty numeryczne • Yes/No – Wyświetla Fałsz (False), jeżeli liczba jest 0, w przeciwnym przypadku wyświetla Prawda (True): Format(0, "True/False") Format(123456, "True/False") Visual Basic for Application 13
Zdefiniowane formaty numeryczne • On/Off – Wyświetla Wył (Off), jeżeli liczba jest 0, w przeciwnym przypadku wyświetla Wł (On): Format(123456, "On/Off") Format(0, "On/Off") Visual Basic for Application 14
Format zdefiniowany przez użytkownika • Znaki, jakich można używać do tworzenia formatów numerycznych użytkownika: None 0 Wyświetla niesformatowaną liczbę Znak pola – wyświetla cyfrę lub zero. Jeżeli wyrażenie zawiera cyfrę na pozycji, gdzie występuje zero 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 dodawane są zera. Jeżeli wyrażenie ma więcej pozycji z lewej strony kropki dziesiętnej, to dodatkowe pozycje zostaną wyświetlone, gdy zaś z prawej, to zostaną obcięte. Visual Basic for Application 15
Format zdefiniowany przez użytkownika • Wyrażenie z mniejszą liczbą pozycji, niż jest zer po obu stronach kropki dziesiętnej w określonym formacie dodane są zera po obu stronach Format(6. 7, "00. 00") • Wyrażenie z mniejszą większą liczbą pozycji, niż jest zer po obu stronach kropki dziesiętnej w określonym formacie – obcięte są pozycje z prawej strony Format(123456. 789, "00. 0") Visual Basic for Application 16
Format zdefiniowany przez użytkownika # Znak pola – wyświetla cyfrę lub nic. Jeżeli wyrażenie zawiera cyfrę na pozycji, gdzie występuje # w wyrażeniu Format, wyświetla ją, w przeciwnym wypadku nic nie wyświetla na tej pozycji. Jeżeli wyrażenie ma mniej pozycji, niż jest # po obu stronach kropki dziesiętnej w określonym formacie, to do wyświetlanej liczby nie są dodawane zera. . Znak dziesiętny – określa pozycję kropki dziesiętnej w utworzonym formacie. Jeżeli z lewej strony tego znaku nie ma znaków pola, to liczby mniejsze od 1 zaczynane są znakiem dziesiętnym. Visual Basic for Application 17
Format zdefiniowany przez użytkownika • Wyrażenie z mniejszą liczbą pozycji, niż jest # po obu stronach kropki dziesiętnej w określonym formacie nic nie jest dodawane Format(6. 7, "###. ##") • Wyrażenie z mniejszą większą liczbą pozycji, niż jest # po obu stronach kropki dziesiętnej w określonym formacie – wszystkie pozycje są wyświetlane Format(123456. 789, "###. ##") Visual Basic for Application 18
Format zdefiniowany przez użytkownika • W zdefiniowanym formacie z lewej strony znaku dziesiętnego nie ma znaków pola: Format(0. 789, ". ##") Visual Basic for Application 19
Format zdefiniowany przez użytkownika % 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 jako separator dziesiętny używana jest kropka. 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. Visual Basic for Application 20
Format zdefiniowany przez użytkownika • Formatowanie wartości procentowych: Format(0. 789, "0. 00%") Visual Basic for Application 21
Format zdefiniowany przez użytkownika • Separator tysięcy: Format(123456, "#, ##0. 00") • Użycie separatora tysięcy z lewej strony separatora dziesiętnego: Format(123456789, "##0, . 00") • Użycie dwóch separatorów tysięcy z lewej strony separatora dziesiętnego: Format(123456789, "##0, , . 00") Visual Basic for Application 22
Format zdefiniowany przez użytkownika E+ Ee+ 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 umieszczana 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 Inne niż wymienione znaki muszą być poprzedzone znakiem zezwolenia () lub być zamknięte w cudzysłów („ „) Visual Basic for Application 23
Format zdefiniowany przez użytkownika • Format wykładniczy dla liczb dodatnich Format(123456789, "####0. 00 E+00") • Format wykładniczy dla liczb ujemnych Format(-123456789, "####0. 00 E+00; -####0. 00 E-00") Visual Basic for Application 24
Format zdefiniowany przez użytkownika Znak zezwolenia Pozwala na wyświetlanie znaków używanych do formatowania. Aby wyświetlić taki znak, należy użyć go podwójnie. Poprzedzane są: 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łowu („ „) Visual Basic for Application 25
Format zdefiniowany przez użytkownika Wyrażenie format zdefiniowane przez użytkownika dla liczb może mieć od jednej do czterech sekcji oddzielonych średnikami • Przy użyciu jednej sekcji wyrażenie Format jest stosowane do wszystkich wartości. Visual Basic for Application 26
Formatowanie liczb • Przy użyciu dwóch sekcji pierwsza sekcja jest stosowana do dodatnich wartości, a druga do ujemnych wartości. • „$#, ##0; ($#, ##0)” • Przy użyciu trzech sekcji pierwsza sekcja jest stosowana do dodatnich wartości, druga do ujemnych wartości, a trzecia do zera. Visual Basic for Application 27
Formatowanie liczb • Przy użyciu czterech sekcji pierwsza sekcja jest stosowana do dodatnich wartości, druga do ujemnych wartości, trzecia do zera, a czwarta do wartości Null. Visual Basic for Application 28
Formatowanie liczb • Można opuścić jedną z sekcji formatu, pozostawiając średniki bez żadnych znaków między nimi. Opuszczona sekcja jest wyświetlana z użyciem formatu dla dodatnich wartości. • W poniższym przykładzie format wyświetla dodatnie i ujemne wartości, używając formatu pierwszej sekcji i wyświetla „Zero”, jeżeli wartość jest zero. Format(0, "#, ##; ; Zero") Visual Basic for Application 29
Formatowanie daty i czasu • Do formatowania daty i czasu można użyć predefiniowanych formatów daty/czasu lub formatów zdefiniowanych przez użytkownika • Ostateczny wygląd formatowania zależy także od aktualnych lokalnych ustawień systemowych Visual Basic for Application 30
Predefiniowane formatowanie daty • Zwraca datę sformatowaną zgodnie ze zdefiniowanym w systemie formatem long/medium/short time. • Format(Date, „Short Date”) • Format(Date, „Medium Date”) • Format(Date, „Long Date”) Visual Basic for Application 31
Predefiniowane formatowanie czasu Zwraca czas sformatowany zgodnie ze zdefiniowanym w systemie formatem long/medium/short time. Format(Time, "Long Time") Format(Time, „Medium Time”) Visual Basic for Application 32
Format zdefiniowany przez użytkownika • Dla zdefiniowania formatu daty używany jest separator (/), • Dla czasu - separator (: ), i literał AM/PM, Format(Date, "dddd, dd mmmm yyyy") Format(Date, „mmmm, yyyy") Visual Basic for Application 33
Format zdefiniowany przez użytkownika • Format daty krótkiej Format(Date, "dd/mm/yy") Visual Basic for Application 34
Format zdefiniowany przez użytkownika • Format(Time, "h: m: s") • Format(Time, "hh: mm: ss AMPM„) Visual Basic for Application 35
Formatowanie łańcucha znaków • Służy do tego format zdefiniowany przez użytkownika, który może mieć jedną lub dwie sekcje oddzielone średnikami. • Przy jednej sekcji wyrażenie Format jest stosowane do wszystkich danych string. • Przy użyciu dwóch sekcji – pierwsza sekcja stosowana jest do danych łańcuchowych, druga do wartości Null i do pustych łańcuchów („ „). Visual Basic for Application 36
Formatowanie łańcucha znaków @ 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łnione od prawej strony do lewej, o ile nie występuje wykrzyknik (!) w wyrażeniu Format. & Miejsce na znak Wyświetla znak lub nic nie wyświetla. Jeżeli łańcuch zawiera znak na pozycji, gdzie jest symbol (&) w wyrażeniu Format, wyświetla go, w przeciwnym razie nie wyświetla nic. Visual Basic for Application 37
Formatowanie łańcucha znaków < Wyświetla wszystkie znaki w formacie małych liter. > Wyświetla wszystkie znaki w formacie dużych liter. ! Powoduje wypełnianie miejsca na znaki od lewej do prawej. Standardowo wypełniane są od prawej do lewej. Visual Basic for Application 38
Formatowanie łańcucha znaków • Format("Formatujemy dowolne słowo", „>") • Format("Formatujemy DOWOLNE słowo", "<") • Format("Formatujemy DOWOLNE słowo", "&&&&&&&!<") Visual Basic for Application 39
• Koniec wykładu 6 – dziękuję za uwagę Visual Basic for Application 40
• When times and dates are displayed in the development environment, the short time format and short date format of the code locale are used. When displayed by running code, the short time format and short date format of the system locale are used, which may differ from the code locale. For this example, English/U. S. is assumed. Visual Basic for Application 41
- Slides: 41