Centrum Skryptów - Microsoft Office

Cześć Skrypciarze! 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 wstawiać pliki do dokumentu Word?

Cześć Skrypciarzu! Jakiś czas temu pokazaliście, jak połączyć kilka plików tekstowych w jeden (j.ang.). Chciałbym zrobić coś podobnego z dokumentami programu Word. W jaki sposób można wstawić pliki do dokumentu Word?

-- Piotr

Cześć, Piotrze. Z pewnością zdziwisz się, ale wstawianie plików do dokumentu Microsoft Word jest łatwiejsze niż wstawianie jednego pliku tekstowego do drugiego. Jest to spowodowane tym, że obiekt Selection programu Word posiada metodę – InsertFile – która odpowiedzialna jest właśnie za to: otwiera ona podany plik i wstawia go do bieżącego dokumentu.

Spójrzmy na skrypt importujący dwa pliki tekstowe (C:\Scripts\Hardware.txt i C:\Scripts\Software.txt):

Set objWord = CreateObject("Word.Application")

objWord.Visible = True

Set objDoc = objWord.Documents.Add()

Set objSelection = objWord.Selection



objSelection.TypeText "Hardware Inventory"

objSelection.TypeParagraph()

objSelection.InsertFile("C:\Scripts\Hardware.txt")



objSelection.TypeParagraph()



objSelection.TypeText "Software Inventory"

objSelection.TypeParagraph()

objSelection.InsertFile("C:\Scripts\Software.txt")

Tak jak mówiliśmy: poszło o wiele łatwiej niż w przypadku łączenia kilku plików tekstowych. Najpierw tworzymy wystąpienie obiektu Word.Application i włączamy właściwość Visible na True (prawda); następnie dodajemy dokument i tworzymy wystąpienie obiektu Selection. Zajmują się tym poniższe wiersze kodu:

Set objWord = CreateObject("Word.Application")

objWord.Visible = True

Set objDoc = objWord.Documents.Add()

Set objSelection = objWord.Selection

Łatwo jak dotąd, a teraz będzie jeszcze łatwiej. Chcemy utworzyć nagłówek dla listy sprzętu (hardware inventory), podajemy wiec nazwę nagłówka: Hardware Inventory, po czym umieszczamy początek akapitu:

objSelection.TypeText "Hardware Inventory"

objSelection.TypeParagraph()

Teraz możemy wstawić plik. Zajmie to jeden wiersz kodu:

objSelection.InsertFile("C:\Scripts\Hardware.txt")

I już: wywołujemy metodę InsertFile, po czym podajemy ścieżkę pliku który ma zostać wstawiony do dokumentu. Dodajemy początek kolejnego akapitu i nagłówek Software Inventory (lista oprogramowania), po czym wstawiamy drugi plik: C:\Scripts\Software.txt. Takie łatwe że chcielibyśmy, aby nasza praca polegała na wstawianiu plików do dokumentów Word!

Tymczasem jednak przedstawimy poprzedni skrypt w nieco zmienionej wersji. Tworzy on nowy dokument Word, po czym wstawia do niego wszystkie pliki znajdujące siew folderze C:\Scripts\Archive. Nie będziemy objaśniać go wiersz po wierszu; to prosty skrypt więc nasi czytelnicy nie powinni mieć z nim większych kłopotów:

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")



Set objWord = CreateObject("Word.Application")

objWord.Visible = True

Set objDoc = objWord.Documents.Add()

Set objSelection = objWord.Selection



Set FileList = objWMIService.ExecQuery _

    ("ASSOCIATORS OF {Win32_Directory.Name='C:\Scripts\Archive'} Where " _

        & "ResultClass = CIM_DataFile")



For Each objFile In FileList

    objSelection.InsertFile(objFile.Name)

    objSelection.TypeParagraph()

Next

Fajne, prawda? Więcej skryptów korzystających z aplikacji Microsoft Office znaleźć można w artykułach z serii Office Space (j.ang.) w innej części Centrum Skryptów. (Reklama sponsorowana przez Społeczny Komitet na Rzecz Większej Popularności Artykułów Office Space).

 Do początku strony Do początku strony


Centrum Skryptów - Microsoft Office