Funkcja format VBA. Jak korzystać z funkcji?

1. Jak używać funkcji Format w VBA?

Funkcja Format jest specyficznym typem funkcji w VBA. Działa zarówno na typach danych VBA  date, string oraz typach liczbowych. Poniżej opisane jest używanie funkcji VBA Format dla wszystkich obsługiwanych przez nią typów danych. Funkcja ta wstawia maskę dla danych. Dla przykładu za jej pomocą zapiszemy:

  • Numer telefonu w formacie 999-999-999
  • Kod pocztowy np 02-782
  • Datę w formacie 2017/12/24 lub 2017/12/24
  • Liczbę z separatorem dziesiętnym np 456 125 544,56 itp.

Składnia funkcji Format VBA wygląda następująco:

'tomaszkenig.pl
Format ( expression, [ format ] )

expression – data, tekst lub liczba, którą chcemy sformatować.

format – argument opcjonalny. To w nim wprowadzamy oczekiwany format dla wartości.

2. VBA Format dla wartości liczbowych.

Poniżej tabelka z formatami, które możemy wstawić w drugim argumencie funkcji dla wartości liczbowych.

FormatOpis
0Zastępuje dowolną liczbę. Służy także do wstawiania zer wiodących.
spacjaJeśli chcemy, by pomiędzy liczbami była spacja
-Myślnik używany dla numerów telefonów i kodów pocztowych.
CurrencyFormat zdefiniowany dla jednostek pieniężnych. Zawieta separator dziesiętny.
FixedWyświetla 1 znak przed miesjcem dziesiętnym i dwa znaki po przecinku.
StandardWyświetla separatory tysięczne i 2 miejsca po przecinku
PercentFormat zdefiniowany dla zapisu procentowego
ScientificZapis naukowy

Poniżej przykłady użycia funkcji VBA Format dla wartości liczbowych.

'tomaszkenig.pl
Sub FormatNums()

Dim sngNumber As Single
Dim intNumber As Integer
Dim LngNumber As Long
Dim dblNumber As Double

sngNumber = 123.456
intNumber = 2456
LngNumber = 515515515
dblNumber = 0.98

MsgBox Format(LngNumber, "000 000 000")
MsgBox Format(LngNumber, "000-000-000")
MsgBox Format(intNumber, "00-000")
MsgBox Format(sngNumber, "Currency")
MsgBox Format(sngNumber, "Fixed")
MsgBox Format(intNumber, "standard")
MsgBox Format(dblNumber, "Percent")
MsgBox Format(sngNumber, "Scientific")

End Sub
Kurs Excel VBA - Funkcja VBA Format
Kurs Excel VBA – Funkcja VBA Format

3. Funkcja Format VBA dla dat i czasu.

Poniżej tabelka z formatami, które możemy wstawić w drugim argumencie funkcji dla wartości dat i czasu.

FormatOpis
d1-31 dzień miesiąca bez zera wiodącego
dd01-31 dzień miesiąca z zerem wiodącym
wDzień tygodnia z zakresu 1-7
ww1-53 (Week of year, with no leading zero; Week 1 starts on Jan 1).
mmmNazwa miesiąca pisana słownie w sposób skrócony np. sty
mmmmNazwa miesiąca pisana słownie w sposób pełny np. styczeń
yDzień roku z zakresu 1-366
yyRok w zakresie 00-99
yyyyRok w zakresie 100-9666
hGodzina w zakresie 0-23 bez zera wiodącego
hhGodzina w zakresie 00-23 z zerem wiodącym
nMinuty w zakresie 0-59 bez zera wiodącego
nnMinuty w zakresie 00-59 z zerem wiodącym
sSekundy w zakresie 0-59 bez zera wiodącego
ssSekundy w zakresie 00-59 z zerem wiodącym
. : -Separatory dat i czasu

Poniżej przykłady użycia funkcji VBA Format dla wartości dat i czasu.

'tomaszkenig.pl
Sub FormatDates()
datExample = Now

MsgBox Format(datExample, "yyyymmdd")
MsgBox Format(datExample, "dd mmmm yyyy")
MsgBox Format(datExample, "yyyy-mm-dd hh:nn:ss")
End Sub
Kurs Excel VBA - Funkcja Format VBA
Kurs Excel VBA – Funkcja Format VBA

Dodatkowo załączam link do artykułu, którym zapisujemy plik z datą w nazwie pliku z użyciem funkcji Format dla dat: Data w nazwie pliku VBA.

Artykuł jest częścią kursu vba Excel. Całość kursu znajdziesz pod tym linkiem: Kurs VBA. Poniżej zamieszczam plik z kodem programu:

kurs_excel_podstawy_formatowanie_danych.xlsm

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *