Centrum Skryptów - Microsoft Office

W jaki sposób można otworzyć skoroszyt programu Excel i pobrać nazwy wszystkich arkuszy? 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.

W jaki sposób można otworzyć skoroszyt programu Excel i pobrać nazwy wszystkich arkuszy?

Cześć, Skrypciarzu! W jaki sposób można otworzyć skoroszyt programu Excel i pobrać nazwy wszystkich arkuszy?

-- Radek

Cześć, Radku. Wróciliśmy właśnie dzisiaj do biura po przedłużonym weekendzie. Z samego rana usiedliśmy przed komputerami, patrząc się tępo w ekrany (w sumie dzień jak co dzień). W końcu jednego z nas coś tknęło: - Ej, czy nie prowadziliśmy czasem serii artykułów z pytaniami i odpowiedziami? Po dłuższej naradzie okazało się, że owszem, i to nie tylko prowadziliśmy, ale ciągle ją prowadzimy! Czyli musieliśmy znaleźć ciekawe pytanie dotyczące skryptów i odpowiedzieć na nie, nie przemęczając się w miarę możliwości.

Wyznamy Ci, Radku, że Twoje pytanie ocaliło nam życie: funkcja ta na pewno się przyda, pytało o nią wielu użytkowników, a najlepsze, że odpowiedź nie wymaga od nas wysiłku. Potrzebny był skrypt otwierający skoroszyt programu Excel i podający nazwy wszystkich arkuszy. Wystarczy coś tak krótkiego:

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = True

Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")



For Each objWorksheet in objWorkbook.Worksheets

    Wscript.Echo objWorksheet.Name

Next

Niewiele się tu dzieje, no nie? Najpierw tworzymy wystąpienie obiektu Excel.Application; następnie włączamy właściwość Visible, dzięki czemu będziemy mogli wszystko obejrzeć. Następnie używamy metody Open do otwarcia pliku C:\Scripts\Test.xls.

Nie jest to trudne, a uzyskanie nazw wszystkich arkuszy jest jeszcze łatwiejsze. Obiekt Workbook (odpowiadający plikom .xls) posiada bowiem właściwość Worksheets; na właściwość tę składa się kolekcja wszystkich arkuszy znajdujących się w skoroszycie. W celu określenia nazw wszystkich arkuszy wystarczy włączyć pętlę For Each przechodzącą przez kolekcję arkuszy i wyświetlającą echo każdego z nich. Zajmują się tym poniższe wiersze:

For Each objWorksheet in objWorkbook.Worksheets

    Wscript.Echo objWorksheet.Name

Next

I już. Można teraz bez kłopotu pobrać nazwy wszystkich arkuszy w skoroszycie, a my możemy znów tępo spoglądać w ekrany, zastanawiając się, kiedy mamy następny przedłużony weekend. Tymczasem zapraszamy do lektury artykułów z serii Office Space (j.ang.), gdzie znaleźć można więcej skryptów obsługujących oprogramowanie Microsoft Office.

P.S. A oto skrypt podający, ile dni pozostało do czwartego lipca, naszego najbliższego święta:

Wscript.Echo DateDiff("d", Date, #7/4/2005#)

Nie musicie nam dziękować; ten skrypt napisaliśmy przede wszystkim z myślą o nas samych.

 Do początku strony Do początku strony

 

Centrum Skryptów - Microsoft Office