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