Cześć Skrypciarze!
Skrypciarze odpowiadają na Wasze pytania
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