Como codificar a tecla ENTER para mover entre campos de formulário em um formulário protegido no Word

ID do artigo: 211219 - Exibir os produtos aos quais esse artigo se aplica.
Para uma versão deste artigo do Microsoft Word 97, consulte 187985.
Expandir tudo | Recolher tudo

Nesta página

Sumário

Este artigo contém quatro Microsoft Visual Basic for Applications macros que você pode usar para emular o Microsoft Word 6.0 para Windows a funcionalidade da tecla ENTER para mover entre campos de formulário em documentos protegidos.

Mais Informações

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando às garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Este artigo presume que você esteja familiarizado com a linguagem de programação demonstrada e as ferramentas usadas para criar e depurar procedimentos. Profissionais de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.
Se você não tenha muita experiência de programação, talvez queira em contato com um Microsoft Certified Partner ou Microsoft Advisory Services. Para obter mais informações, visite da Microsoft:

Microsoft Certified Partners - https://partner.microsoft.com/global/30000104

Comunicado de Microsoft Services - http://support.microsoft.com/gp/advisoryservice

Para obter mais informações sobre as opções de suporte estão disponíveis e sobre como entrar em contato com a Microsoft, visite o seguinte site: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Para obter informações adicionais sobre como executar código de exemplo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
212536OFF2000: Como executar o código de exemplo de artigos da Knowledge Base

ENTER chave funcionalidade no Word 6.0

No Word 6.0 para Windows, se você pressionar a tecla ENTER em um documento que está protegido para formulários, o ponto de inserção vai para o próximo campo do formulário. Por outro lado, nas versões posteriores do Word, a tecla ENTER não move para o próximo campo de formulário mas em vez disso, insere uma marca de parágrafo, exatamente como faz em um documento desprotegido. Isso permite que você inserir várias linhas de texto em um campo de formulário texto.

Macros

Veja a seguir quatro Visual Basic for Applications macros que você pode utilizar para emular o Word 6.0 para a funcionalidade do Windows do ENTER chave novo protegido documentos de campo de formulário com base em um modelo. A seguir há uma breve descrição da funcionalidade de cada macro:
  • A primeira macro move o ponto de inserção para o próximo campo do formulário.
  • A segunda macro atribui a macro primeira para o ENTER chave.
  • A terceira macro garante que a funcionalidade da chave continua quando você abre um documento baseado no modelo de formulário no futuro.
  • A macro quarta remove a macro atribuída o ENTER chave, restaurar a funcionalidade padrão da tecla ENTER.
importante : para este código funcione como escrito, o modelo não deve ser protegido. Se o modelo estiver protegido, você receber a seguinte mensagem de erro:
O contexto não pode ser modificado.
Para desproteger o modelo, siga estas etapas:
  1. Abra o modelo que contém as macros descritas neste artigo.
  2. No menu Ferramentas , clique em Desproteger documento .
  3. No menu arquivo , clique em Salvar .
  4. No menu arquivo , clique em Fechar .

Primeira macro: Mover o ponto de inserção para o próximo campo de formulário

Essa macro move o ponto de inserção para o próximo campo do formulário. Se o campo de formulário atual for o último no documento, ele move o ponto de inserção para o primeiro campo de formulário.

Essa macro usa os indicadores coleção para recuperar o nome do campo de formulário atual. O nome de cada campo do formulário também é o nome de um indicador inserido para o campo de formulário. Se você tiver todos os indicadores no documento, talvez seja necessário adicionar mais código aqui para lidar com possíveis erros. A macro também pressupõe que todos os campos de formulário nos documentos permitem entrada do usuário. Se isso não for o caso em seu documento, você precisará adicionar código adicional em sua macro.

A macro verifica se a seção atual está protegida ou desprotegido e vai para o próximo campo de formulário (em uma seção protegida) ou insere uma marca de parágrafo (em uma seção não protegida). Essa funcionalidade é necessária para documentos que contêm ambas as seções são protegidas para formulário de entrada e desprotegido seções.
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
				

Segunda macro: Atribuir a Macro EnterkeyMacro para a chave ENTER

Essa macro anexa a macro EnterKeyMacro a tecla ENTER, reprogramação assim a função da tecla quando ele é usado em campos de formulário de documento protegido. Quando você usa esta macro em um modelo personalizado, nome AutoNew. Isso altera a funcionalidade da tecla ENTER em todos os novos documentos de formulário com base no modelo.
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
				

Terceira macro: Atribuir a Macro AutoOpen para a chave ENTER

Adicione uma macro AutoOpen com o código a seguir. Isso garante que a funcionalidade da chave continua quando você abre um documento baseado no modelo de formulário no futuro.
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
				
Observação : executar essas macros podem desabilitar alguns recursos, como AutoCorreção e AutoTexto e podem afetar outros recursos que dependem da tecla ENTER para uma operação adequada. Você precisará executar a macro quarta para restaurar a funcionalidade padrão da tecla ENTER ou reinicie o Microsoft Word.

Quarta macro: Remover o comando atribuído à chave do ENTER

Essa macro restaura a funcionalidade padrão da tecla ENTER. Quando você usa esta macro em um modelo personalizado, nome AutoClose.
Sub AutoClose()
   CustomizationContext = ActiveDocument.AttachedTemplate
   FindKey(KeyCode:=BuildKeyCode(wdKeyReturn)).Disable
   ' Disables prompt to save template changes.
   Templates(1).Save
End Sub
				
Observação : A propriedade CustomizationContext define o local onde a personalização do teclado a ser salvo, nesse caso, o modelo anexado ao documento ativo.

Referências

Para obter informações adicionais sobre recursos disponíveis para a criação de soluções personalizadas usando o Visual Basic for Applications e o Microsoft Word 2000, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
212623WD2000: Recursos de programação de macro
226118OFF2000: Programação recursos para o Visual Basic for Applications

Propriedades

ID do artigo: 211219 - Última revisão: quinta-feira, 23 de novembro de 2006 - Revisão: 2.7
A informação contida neste artigo aplica-se a:
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Palavras-chave: 
kbmt kbautomation kbmacro kbprogramming kbhowto kbinfo kbinterop KB211219 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 211219

Submeter comentários