Como localizar o final de uma página em um documento do Word usando automação

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: 285599
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo descreve métodos automáticos para localizar o final de uma página em um documento do Microsoft Word.
Mais Informações
Há dois métodos que você pode usar para localizar o final de uma página:
  • Você pode usar o indicador "\page" predefinido. - ou -

  • Você pode usar objeto de navegador do Word para alterar o ponto de inserção para o de destino do navegador wdBrowsePage .
Os exemplos a seguir fazer uso de um documento de teste que abrange várias páginas. No documento de teste, uma página pode terminar com uma marca de parágrafo ou uma página pode quebrar para uma nova página, dividindo um parágrafo entre as duas páginas. Antes de iniciar as etapas para criar os exemplos abaixo, criar um documento de três páginas no Microsoft Word e salve-o como C:\ThreePageDocument.doc .

Exemplo 1: Usar um indicador predefinido

  1. Inicie um novo projeto Visual Basic Standard EXE. o Form1 é criado por padrão.
  2. Adicione três botões de comando ao Form1. Altere as legendas Command3 , Command1 e Command2 \Page usar método indicador , Mover para próximo \Page indicador e Sair , respectivamente.
  3. A partir do menu Project , clique em referências . Selecione Microsoft Word 9.0 Object Library e, em seguida, clique em OK . Observação Para o Word 2002, selecione a Biblioteca de objetos do Microsoft Word 2002 . Para o Microsoft Word 2003, selecione o Microsoft Word 11.0 Object Library .

  4. Copie o seguinte código para o módulo do código do Form1:
    Option ExplicitDim oWord As Word.ApplicationDim oDoc As Word.DocumentDim oRange As Word.RangeDim iPageNumber As IntegerDim iCount As IntegerPrivate Sub Command1_Click()    Set oWord = New Word.Application    oWord.Visible = True    iPageNumber = 1     ' Initialize    Set oDoc = oWord.Documents.Open(FileName:="C:\ThreePagedocument.doc")    oDoc.Bookmarks("\page").Range.Select     ' \page is internal to Word    oWord.Selection.Collapse direction:=wdCollapseEnd     ' Position insertion point    oWord.Selection.MoveLeft Unit:=wdCharacter, Count:=1    Set oRange = oWord.Selection.Range    oRange.Text = "*"    oRange.Collapse direction:=wdCollapseEnd    oRange.Select    oWord.Selection.MoveRight Unit:=wdCharacter, Count:=1    MsgBox "Click OK to close this box, then click the document to see the insertion point", vbMsgBoxSetForegroundEnd SubPrivate Sub Command2_Click()    iPageNumber = iPageNumber + 1  ' Point to next page    iCount = 2    oDoc.Bookmarks("\page").Range.Select  ' Word's internal bookmark    oWord.Selection.Collapse direction:=wdCollapseEnd ' move insertion point        If Asc(oWord.Selection.Characters(1).Text) = 13 Then  ' Is this a paragraph mark?        ' Assume you're at last paragraph of the last page        Set oRange = oWord.Selection.Range        oRange.Text = "*"  ' Show that you're at the end of the page    Else  ' Not at the end of last paragraph on last page        oWord.Selection.MoveLeft Unit:=wdCharacter, Count:=2 'Possible Para and Page symbols        ' Check for Autowrap from one page to the next.        If Asc(oWord.Selection.Characters(1).Text) <> 13 Then 'it is not a paragraph            oWord.Selection.MoveUp Unit:=wdLine, Count:=1 ' was autowrapped, so force                                                          ' current line to next page                                                          ' if inserted text is to go                                                          ' on this page        End If        Set oRange = oWord.Selection.Range        oRange.Text = "*"  ' Show that you're at the end of the page        oRange.Collapse direction:=wdCollapseEnd        oRange.Select        oWord.Selection.MoveRight Unit:=wdCharacter, Count:=2 ' past the para and asterisk    End If    MsgBox "Dismiss this message, then click the document to see the insertion point.", vbMsgBoxSetForegroundEnd SubPrivate Sub Command3_Click()    If Not (oDoc Is Nothing) Then        oDoc.Saved = True        oDoc.Close        Set oDoc = Nothing        oWord.Quit (False)        Set oWord = Nothing    End If    Unload MeEnd Sub					
  5. Pressione F5 para iniciar o programa.
  6. Clique em usar \Page método indicador . Primeiro, o Word inicia e abre seu arquivo ThreePageDocument.doc. Em seguida, será exibida uma caixa de mensagem. Siga as instruções que aparecem na caixa de.
  7. Para páginas subseqüentes, clique em Mover para próximo \Page indicador .
  8. Para fechar o Word e terminar a demonstração, clique em Sair .

Exemplo 2: Usando o objeto Browser

O código nesta seção demonstra que você pode separar a conteúdo de uma página por vez de um documento de várias páginas e copiar esse conteúdo em um novo documento.
  1. Inicie um novo projeto Visual Basic Standard EXE. Form1 é adicionado por padrão.
  2. Adicione dois botões de comando ao Form1. Altere a legenda de Command1 para Usar Word navegador método e a legenda do Command2 para Sair .
  3. A partir do menu Project , clique em referências . Selecione Microsoft Word 9.0 Object Library e, em seguida, clique em OK . Observação : para Word 2002, seleccione o Microsoft Word 2002 Object Library . Para o Microsoft Word 2003, selecione o Microsoft Word 11.0 Object Library .

  4. Copie o seguinte código para o módulo do código do Form1:
    Option ExplicitDim oWord As Word.ApplicationDim oDoc As Word.DocumentDim oNewDoc As Word.DocumentDim oRange As Word.RangeDim iPageNumber As IntegerDim iCount As IntegerDim strTestDir As StringDim strTestFile As StringPrivate Sub Command1_Click()    Command1.Visible = False    Dim lCurrentStart As Long    Dim lCurrentEnd As Long    Dim lDocumentEnd As Long    Dim lOutputCount As Long        lOutputCount = 0        'Launch Word and make it visible    Set oWord = CreateObject("Word.Application")    oWord.Visible = True        'Open the test document    Set oDoc = oWord.Documents.Open(FileName:="C:\ThreePageDocument.doc")        'Find the beginning end of the document    oDoc.Select    lCurrentStart = oWord.Selection.Start    lCurrentEnd = lCurrentStart    lDocumentEnd = oWord.Selection.End        'Move the insertion point to the beginning of the document    oWord.Selection.Collapse wdCollapseStart        Do While (lCurrentEnd < lDocumentEnd)        'Move the insertion pointer to the bottom of this page        oWord.Browser.Target = wdBrowsePage        oWord.Browser.Next        lCurrentEnd = oWord.Selection.End                'On the last page, the start and end will be the same        If (lCurrentStart = lCurrentEnd) Then            lCurrentEnd = lDocumentEnd        End If                'Capture the Range of the current page        Set oRange = oDoc.Range(lCurrentStart, lCurrentEnd)                'Create a new document and copy the range to it        Set oNewDoc = oWord.Documents.Add        oRange.Copy        oNewDoc.Range(0, 0).Paste                'Release the Range so we don't leak references        Set oRange = Nothing                'Save the new document and close it        oNewDoc.SaveAs FileName:="C:\Result" & lOutputCount & ".doc"             ' You can save as another FileFormat. If so, change the             '  file extension accordingly.        oNewDoc.Close        Set oNewDoc = Nothing                'Increment the output counter so we don't overwrite this file later        lOutputCount = lOutputCount + 1                'Reset the current start position        lCurrentStart = oWord.Selection.End    LoopEnd SubPrivate Sub Command2_Click()    If Not (oDoc Is Nothing) Then         oDoc.Saved = True         oDoc.Close         Set oDoc = Nothing         oWord.Quit (False)         Set oWord = Nothing    End If    Unload MeEnd Sub					
  5. Pressione F5 para iniciar o programa.
  6. Clique em usar Word navegador método .
  7. O código gerará um novo documento do Word para cada página no documento. Examine os seguintes documentos:
    C:\Result0.doc
    C:\Result1.doc
    C:\Result2.doc


(c) Microsoft Corporation 2001, todos os direitos reservados. Contribuições de Chris Jensen, Microsoft Corporation.

Referências
Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
220607Como automatizar o Word para executar a mala direta a partir do Visual Basic
184974OFF: Como utilizar a automatização (OLE) com o Word

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 285599 - Última Revisão: 12/05/2015 23:56:43 - Revisão: 5.2

Microsoft Office Word 2003, Microsoft Word 2000 Standard Edition, Microsoft Visual Basic 6.0 Professional Edition

  • kbnosurvey kbarchive kbmt kbhowto KB285599 KbMtpt
Comentários