Wersja tego artykułu do programu Microsoft Word 97 dla
187985.
Streszczenie
Ten artykuł zawiera cztery Microsoft Visual Basic for Applications makra, które można używać do emulowania Microsoft Word 6.0 dla Windows funkcję klawisza ENTER do poruszania się między polami formularza w dokumentach chronionych.
Więcej informacji
Firma Microsoft podaje przykłady programowania wyłącznie dla zilustrowania sytuacji, bez jakichkolwiek gwarancji wyrażonych wprost lub dorozumianych, w tym, między innymi, ustawowej rękojmi co do przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że użytkownik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać funkcjonalności i konstruować procedur w celu spełnienia określonych potrzeb.
Jeśli czytelnik ma niewielkie doświadczenie w programowaniu, może skontaktować się z autoryzowanym partnerem firmy Microsoft lub usługami doradczymi firmy Microsoft. Aby uzyskać więcej informacji, odwiedź następujące witryny firmy Microsoft w sieci Web:
Certyfikowani partnerzy firmy Microsoft - https://partner.microsoft.com/global/30000104
Usługi doradcze firmy Microsoft — http://support.microsoft.com/gp/advisoryservice
Aby uzyskać więcej informacji na temat dostępnych opcji pomocy technicznej oraz sposobu kontakt z firmą Microsoft, odwiedź następującą witrynę firmy Microsoft w sieci Web:http://support.microsoft.com/default.aspx?scid=fh;pl; EN-US; CNTACTMS
Aby uzyskać dodatkowe informacje na temat uruchamiania kodu przykładowego kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
212536 OFF2000: jak uruchamiać kod przykładowy z artykułów bazy wiedzy
Wprowadź klucz funkcje w programie Word 6.0
W programie Word 6.0 dla systemu Windows po naciśnięciu klawisza ENTER w dokumencie, który jest chroniony w przypadku formularzy przenosi punkt wstawiania do następnego pola formularza. Natomiast w starszych wersjach programu Word klawisza ENTER nie przenosi do następnego pola formularza ale zamiast wstawia znacznik akapitu, tak jak ma to miejsce w niechronione dokumentu. Dzięki temu można wprowadzić wiele wierszy tekstu do pola tekstowego formularza.
Makra
Poniżej przedstawiono cztery języka Visual Basic for Applications makra, które można używać razem do emulowania Word 6.0 dla systemu Windows funkcji klawisza ENTER w nowych dokumentach pola formularza chronionych na podstawie szablonu. Oto krótki opis funkcji poszczególnych makr:
-
Pierwsze makro przenosi punkt wstawiania do następnego pola formularza.
-
Drugiego makra przypisuje pierwsze makro do klawisza ENTER.
-
Trzeci makro gwarantuje, że najważniejsze funkcje w dalszym ciągu po otwarciu dokumentu opartego na szablonie formularza w przyszłości.
-
Czwarty makro usuwa przypisane makro z klawisza ENTER, przywrócenia funkcjonalności domyślny klawisz ENTER.
Ważne: dla tego kodu do pracy podczas zapisywania szablonu nie powinny być chronione. Jeśli szablon jest chroniony, pojawi się następujący komunikat o błędzie:
Nie można zmodyfikować kontekstu.
Aby wyłączyć ochronę szablonu, wykonaj następujące kroki:
-
Otwórz szablon, który zawiera makra opisane w tym artykule.
-
W menu Narzędzia kliknij polecenie Nie chroń dokumentu.
-
W menu plik kliknij polecenie Zapisz.
-
W menu plik kliknij przycisk Zamknij.
Pierwsze makro: Przenieść punkt wstawiania do następnego pola formularza
To makro przenosi punkt wstawiania do następnego pola formularza. Jeśli bieżące pole formularza jest ostatnią w dokumencie, przenosi punkt wstawiania do pierwszego pola formularza.
To makro jest używana jest kolekcja zakładek do pobierania nazwy bieżącego pola formularza. Nazwa każdego pola formularza jest również nazwę zakładki, dodaje się do pola formularza. Jeśli masz inne zakładki w dokumencie, może trzeba więcej tutaj należy dodać kod obsługi potencjalnych błędów. Makro zakłada, że wszystkie pola formularza w dokumentach zezwalanie na interwencję użytkownika. Jeśli nie jest to miejsce w dokumencie, należy dodać dodatkowy kod makra.
Makro sprawdza, czy bieżącej sekcji jest chroniony lub niezabezpieczone i następnie przechodzi do następnego pola formularza (w sekcji chronionych) lub wstawia znacznik akapitu (w niechronionych części). Ta funkcja jest niezbędna do dokumentów, które zawierają obie sekcje, które są chronione dla formularza wejściowe i bez ochrony sekcjach.
Sub EnterKeyMacro()
' Check whether the document is protected for forms
' and whether the protection is active.
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields And _
Selection.Sections(1).ProtectedForForms = True Then
' Retrieve the bookmark of the current selection.
' This is equivalent to the name of the form field.
myformfield = Selection.Bookmarks(1).Name
' Go to the next form field if the current form field
' is not the last one in the document.
If ActiveDocument.FormFields(myformfield).Name <> _
ActiveDocument.FormFields(ActiveDocument.FormFields.Count) _
.Name Then
ActiveDocument.FormFields(myformfield).Next.Select
Else
' If the current form field is the last one,
' go to the first form field in the document.
ActiveDocument.FormFields(1).Select
End If
Else
' If the document is not protected for forms,
' insert a tab stop character.
Selection.TypeText Chr(13)
End If
End Sub
Drugiego makra: Przypisywanie makra EnterkeyMacro do klawisza ENTER
To makro dołączy makra EnterKeyMacro do klawisz ENTER, a tym samym przeprogramowanie funkcji klawisza, gdy jest używany w polach formularza chronionego dokumentu. Podczas korzystania z tego makra w szablonie niestandardowym, nadaj mu nazwę AutoNew. Zmienia funkcję klawisza ENTER we wszystkich nowych dokumentach formularz oparty na szablonie.
Sub AutoNew()
' Do Not protect the template containing these macros.
CustomizationContext = ActiveDocument.AttachedTemplate
' Bind the ENTER key to the EnterKeyMacro.
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
' Reprotect the document with Forms protection.
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End Sub
Drugiego makra: Przypisywanie makra Enterkeymacro do klawisza ENTER
Dodaj następujący kod makra AutoOpen. Gwarantuje to, że najważniejsze funkcje w dalszym ciągu po otwarciu dokumentu opartego na szablonie formularza w przyszłości.
Sub AutoOpen()
' This macro will reassign the ENTER key when you open an existing
' Word form fields document.
CustomizationContext = ActiveDocument.AttachedTemplate
' Bind the Enter key to the EnterKeyMacro.
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyReturn), _
KeyCategory:=wdKeyCategoryMacro, Command:="EnterKeyMacro"
End Sub
Uwaga: uruchomienie tych makr mogą wyłączyć niektóre funkcje, takie jak Autokorekta i pozycji Autotekstu i może mieć wpływ na inne funkcje, które zależą od klawisza ENTER do prawidłowego działania. Musisz uruchomić makro czwartego przywracania domyślnie funkcja klawisza ENTER lub ponownego uruchomienia programu Microsoft Word.
Czwarty makro: Usuwanie przypisanego do klawisza ENTER
To makro przywraca domyślne funkcji klawisz ENTER. Podczas korzystania z tego makra w szablonie niestandardowym, nadaj mu nazwę AutoClose.
Sub AutoClose()
CustomizationContext = ActiveDocument.AttachedTemplate
FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
' Disables prompt to save template changes.
Templates(1).Save
End Sub
Uwaga: właściwość CustomizationContext Ustawia lokalizację, w której Dostosowywanie klawiatury ma być zapisane w tym przypadku szablon dołączony do aktywnego dokumentu.
Powiązane artykuły
Aby uzyskać dodatkowe informacje na temat dostępnych zasobów do tworzenia niestandardowych rozwiązań przy użyciu języka Visual Basic dla aplikacji i Microsoft Word 2000 kliknij numery artykułów poniżej w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:
212623 WD2000: zasoby programowania makra
226118 OFF2000: programowania zasobów dla języka Visual Basic for Applications