Centrum Skrypciarzy - Microsoft Office

Jak utworzyć niestandardowy format daty w programie Microsoft Excel?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Jak utworzyć niestandardowy format daty w programie Microsoft Excel?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! Jak wyświetlić datę typu 01/20/2006 w formacie 20060120 w programie Microsoft Excel?

-- CM

Cześć Skrypciarze! Odpowiedź

Cześć, CM. Na kogo wystawić czek? I na ile?

A, przepraszam. Po zebraniu rodziców w nowej drużynie baseballowej Skrypciątka mam tendencję do zakładania, że każde skierowane do mnie pytanie dotyczy pieniędzy. Ponieważ rozstawanie się z pieniędzmi jest przykre, staram się maksymalnie skrócić ten proces. Po prostu wypisuję czek i po sprawie.

Daj mi chwilę, CM, muszę przestawić mózg na inne tory.

[bzzz…bzzz…bzzz…]

Dobra, mogę się zabierać do pracy. Oto skrypt, wprowadzający niestandardowy format daty w komórce w arkuszu programu Microsoft Excel:

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = True



objExcel.Workbooks.Add



objExcel.Cells(1,1).Value = "01/01/2006"

objExcel.Cells(1,1).NumberFormat = "yyyymmdd"

Jak widać, zastosowanie niestandardowego formatu daty jest równie proste, co wypisanie czeku. Zaczynamy od utworzenia wystąpienia obiektu Excel.Application i ustawienia jego właściwości Visible na True; dzięki temu uzyskujemy uruchomione i widoczne na ekranie wystąpienie programu Microsoft Excel. Następnie możemy użyć metody Add, by dodać nowy zeszyt. Mając zeszyt możemy się wreszcie zabrać do pracy.

Na początek musimy umieścić w arkuszu wartość 01/01/2006. Zajmuje się tym poniższy wiersz kodu, ustawiający właściwość Value komórki A1 (wiersz 1, kolumna 1) na 01/01/2006:

objExcel.Cells(1,1).Value = "01/01/2006"

Dzięki temu uzyskamy arkusz wyglądający tak jak poniżej (program Excel zastosował tu domyślne formatowanie daty i czasu):

Rzecz jasna nie chcemy, aby stosowany był format domyślny. Zależy nam na formacie niestandardowym, używającym czterech cyfr do podania roku, a po dwóch – do podania miesiąca i dnia. Ile to będzie nas kosztować? No cóż, tylko parę klepnięć w klawiaturę:

objExcel.Cells(1,1).NumberFormat = "yyyymmdd"

Okazuje się, że nie ma tu nic trudnego: konfigurujemy po prostu właściwość NumberFormat komórki, przypisując jej wartość składającą się z czterech liter y (oznaczających cztery cyfry roku); dwu liter m (oznaczających cyfry miesiąca); i dwu liter d (oznaczających cyfry dnia). I to wystarczy – magicznym sposobem zmieniamy formatowanie komórki A1 na takie:

Powinniśmy chyba zwrócić uwagę, że można utworzyć właściwie dowolny format daty i czasu. Załóżmy, że chcemy wyświetlić datę tak:

01.01.2006

Już się robi:

objExcel.Cells(1,1).NumberFormat = "mm.dd.yyyy"

Więcej informacji na temat formatowania komórek można uzyskać, otwierając program Excel, klikając menu Format, polecenie Komórki, a następnie, na karcie Liczby okna dialogowego Formatuj komórki, klikając kategorię Niestandardowe. Każdy z symboli formatowania widocznych w oknie dialogowym można zastosować do właściwości NumberFormat za pomocą skryptu.

 Do początku strony Do początku strony

Centrum Skrypciarzy - Microsoft Office