Následující zadání bude fungovat, pokud jej budete tvořit na discích C, D nebo A.
V aplikaci MS Word vytvořte dokument "Zájezd.doc", v němž jsou kromě neměnného textu o registraci člověka na zájezd 4 pole pro proměnné propojená s excelovským souborem "Vstup.xls". Soubor "Vstup.xls" bude sloužit pro zadávání proměnných do wordovského souboru s kontrolou jejich formátu. Kontrolu formátu realizujte pomocí ověření 4 buněk určených pro zadání hodnot. 1. hodnota bude typu datum od 1.1.2003 do 1.1.2020, 2. hodnota bude typu celé číslo od 1 do 100, 3. hodnota bude nabývat pouze 2 přípustných hodnot "žena" nebo "muž", 4. hodnota ponese jméno člověka jako textový řetězec a nesmí být prázdná. Při nastavování ověřování buněk zadejte vhodnou nápovědu pro uživatele. Na list souboru "Vstup.xls". s propojenými buňkami umístěte tlačítko s vhodným popiskem, které otevře soubor "Zájezd.doc", do kterého se při jeho otevření natáhnou údaje ze souboru "Vstup.xls". Následně makro odstraní z otevřeného wordovského dokumentu propojení a uloží soubor "Zájezd.doc" pod jménem člověka. O souborech "Zájezd.doc", "Vstup.xls" a výsledném souboru se předpokládá, že budou umístěny v libovolném společném adresáři. Makro otevře soubor "Zájezd.doc" pouze, pokud je vyplněné jméno, jinak se zobrazí MsgBox s upozorněním na chybu.
V excelovském souboru budete potřebovat toto makro:
Option Explicit 'Nástroje - Odkazy - Microsoft Word x.x Object Library 'Paul McFedries - Kapitola 15 Sub VytvořWordovskýSoubor() Const WordSoubor = "Zájezd.doc" Dim Cesta, Jméno As String Dim WordovskáAplikace As Word.Application If Range("b4").Value <> "" Then Cesta = ActiveWorkbook.Path Set WordovskáAplikace = CreateObject("Word.Application") With WordovskáAplikace .ChangeFileOpenDirectory Cesta .Documents.Open FileName:=WordSoubor Jméno = .ActiveDocument.Fields(4).Result .ActiveDocument.Fields.Unlink .ActiveDocument.SaveAs FileName:=Jméno .ActiveDocument.Close End With WordovskáAplikace.Quit Set WordovskáAplikace = Nothing Else: MsgBox "Vyplňte jméno a potom znovu spusťte makro." End If End Sub