 VB.NET - Digitação Automática no Word
  
VB.NET - Digitação Automática no Word
Que tal abrir um arquivo texto no VB.NET e fazer a digitação automática deste arquivo no Word ?
Podemos facilmente ativar o aplicativo Word a 
partir do VB.NET como fazíamos no VB.  Só para lembrar , abaixo dou a 
relação dos artigos sobre VBA e automação OLE no site: (recordar é viver... )
)
. Vamos lá...
Inicie um novo projeto no Visual Studio.NET com as seguintes características (sinta-se a vontade para alterar a seu gosto.)
No VB.NET você vai precisar referenciar a biblioteca Microsoft Word Object Library. Clique em Project| Add References e na janela Add Reference clique na guia COM selecionando o componente Microsof Word 10.0 Object Library , conforme abaixo:

No formulário padrão - form1.vb - você vai incluir os seguintes componentes:
O menu do formulário deverá ter duas opções : Arquivo e Ajuda. Veja a figura abaixo:

Como vamos abrir arquivos texto usando o StreamReader você terá que utilizar o namespace System.Io através da declaração Imports abaixo:
Imports
System.IOA seguir defina as variáveis que serão usadas no projeto :
Dim mensagem As String = ""Dim i As Integer
Dim t As New Timer()Dim aplication As New Word.Application()
Dim documentoWord As New Word.Document()
Agora no evento Click do MenuItem da opção Abrir inclua o código abaixo , ele faz o seguinte:
- Abre uma janela de diálogo - Abrir Arquivos - 
exibindo os arquivos texto (.txt)
- Ao selecionar um arquivo ele será aberto e exibido no controle - 
RichtTextBox1 
| Private
    Sub MenuItem2_Click(ByVal 
    sender As System.Object, ByVal e
    As System.EventArgs) Handles 
    MenuItem2.Click 
 OpenFileDialog1.ShowDialog() 
     Dim o As StreamReader = File.OpenText(OpenFileDialog1.FileName) RichTextBox1.Text = o.ReadToEnd() End If RichTextBox1.SelectionStart = 0 RichTextBox1.SelectionLength = 0 Catch ex As Exception MsgBox("Ocorreu um erro na abertura do arquivo.", MsgBoxStyle.Critical) EndEnd Try End Sub 
 | 
No evento Click do MenuItem - Digitar no Word - inclua o código abaixo. Ele instancia um objeto do tipo Word com o qual iremos trabalhar.
Estou definindo um evento na classe Timer que a cada 1 segundo irá enviar um caractere do texto aberto para o documento do Word através da rotina DigitarNoWord.
| PrivateSub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click Try aplication.Visible = True aplication.Activate()    documentoWord = 
    aplication.Documents.Add AddHandler t.Tick, AddressOf DigitarNoWord 
 t.Start() i = 0 Catch excep As Exception MsgBox("Ocorreu o seguinte erro: " & excep.Message, MsgBoxStyle.Critical, "Word") Exit SubEnd Try End Sub | 
O código da rotina DigitarNoWord é dado abaixo:
| PrivateSub DigitarNoWord(ByVal sender As Object, ByVal e As System.EventArgs) 
 
     t.Stop() aplication.Visible = False MessageBox.Show("O texto foi digitado com sucesso.", "Word", MessageBoxButtons.OK) aplication.ChangeFileOpenDirectory("C:\teste\") aplication.ActiveDocument.SaveAs(FileName:="teste_Digitação_Word" & i & ".doc") Exit SubEnd If aplication.Selection.TypeText(mensagem.Chars(i)) i += 1 End Sub | 
Esta rotina verifica se a quantidade de caracteres 'digitados' é do igual aos da mensagem (tamanho da mensagem) ; quando isto ocorre o timer é encerrado e o texto no Word é salvo.
Eu sei , é apenas VB .NET , mas eu gosto ... 

| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic 
(sempre atualizado) : clique e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 | 
             Gostou ?
  Compartilhe no Facebook
Compartilhe no Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter
 
Referências: