Para editar o cabeçalho e o rodapé em um documento Word, utilize os códigos abaixo.
Abrir o cabeçalho para edição:
docDoc.Content.Application.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageHeader
Abrir o rodapé para edição:
docDoc.Content.Application.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekCurrentPageFooter
Para fechar a edição tanto para o cabeçalho quanto para o rodapé, utilize o código abaixo:
docDoc.Content.Application.ActiveWindow.ActivePane.View.SeekView = Word.WdSeekView.wdSeekMainDocument
Abaixo, alguns códigos para inserir elementos no cabeçalho ou rodapé enquanto a edição do campo está aberta:
With docDoc.Content.Application.Selection
.TypeText(Text:="Texto")
'Insere texto
.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft
'Altera o alinhamento do texto
.Font.Name = "Arial"
'Altera a fonte do texto
.Font.Size =10 'Altera
o tamanho da fonte do texto
.Font.Bold = 0 'Coloca
em negrito ou não o texto
.InlineShapes.AddPicture("Caminho
da figura/nome.extensão")
'Insere figura
.Fields.Add(Range:=docDoc.Content.Application.Selection.Range, Type:=CInt(Word.WdFieldType.wdFieldEmpty), Text:="page")
'Insere o número da página
.Fields.Add(Range:=docDoc.Content.Application.Selection.Range, Type:=CInt(Word.WdFieldType.wdFieldEmpty), Text:="numpages")
'Insere o número total de páginas
End With
Uma boa maneira de aprender novos códigos é utilizar a macro do Word. Grave as alterações que queira fazer e adapte para o código VB.NET.
Simples, não?
Mostrando postagens com marcador Word. Mostrar todas as postagens
Mostrando postagens com marcador Word. Mostrar todas as postagens
domingo, 15 de julho de 2012
quarta-feira, 4 de julho de 2012
Adicionar e formatar uma tabela em um documento do Word
Para adicionar e formatar uma tabela em um documento de Word, abra um
documento conforme mostrado neste post e utilize os seguintes comandos:
Dim docTable As Word.Table
Dim r As Integer = 2 'Número de linhas
Dim c As Integer = 2 'Número de colunas
docTable = docDoc.Tables.Add(docDoc.Bookmarks.Item("\endofdoc").Range, r, c)
With docTable
.Range.Font.Name = "Arial"'Nome da fonte
.Range.Font.Size = 10 'Tamanho da fonte
.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter 'Alinhamento horizontal do texto nas linhas
.Rows(2).Range.Font.Bold = 1 'Fonte em negrito na linha 2
.Columns.DistributeWidth() 'Distribui a largura das células de acordo como conteúdo
.Columns(1).Width = 50 'Especifica o tamanho da coluna 1
.Cell(1, 1).Merge(docTable.Cell(2, 1)) 'Mesclar a célula (1, 1) com a célula (2, 1)
.Cell(1, 1).Range.Text = "Texto"'Inserir texto na célula (1, 1)
.Cell(1, 1).Range.Font.Bold = 1 'Texto da célula (1, 1) em negrito
.Cell(1, 1).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter 'Alinhamento horizontal do texto na célula (1, 1)
.Cell(1, 1).VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter 'Alinhamento vertical do texto na célula (1, 1)
.Cell(1, 1).Borders(Word.WdBorderType.wdBorderTop).Color = Word.WdColor.wdColorBlue 'Altera a cor da borda superior da célula (1, 1)
.Cell(1, 1).Borders(Word.WdBorderType.wdBorderTop).LineStyle = Word.WdLineStyle.wdLineStyleSingle 'Altera o estilo da linha da borda superior da célula (1, 1)
.Cell(1, 1).Borders(Word.WdBorderType.wdBorderTop).LineWidth = Word.WdLineWidth.wdLineWidth025pt 'Altera o tamanho da linha da borda superior da célula (1, 1)
.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle 'Estilo das bordas internas da tabela
.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle 'Estilo das bordas externas da tabela
End With
Estes são os principais comandos. Explore outros.
Simples, não?
Dim docTable As Word.Table
Dim r As Integer = 2 'Número de linhas
Dim c As Integer = 2 'Número de colunas
docTable = docDoc.Tables.Add(docDoc.Bookmarks.Item("\endofdoc").Range, r, c)
With docTable
.Range.Font.Name = "Arial"'Nome da fonte
.Range.Font.Size = 10 'Tamanho da fonte
.Rows.Alignment = Word.WdRowAlignment.wdAlignRowCenter 'Alinhamento horizontal do texto nas linhas
.Rows(2).Range.Font.Bold = 1 'Fonte em negrito na linha 2
.Columns.DistributeWidth() 'Distribui a largura das células de acordo como conteúdo
.Columns(1).Width = 50 'Especifica o tamanho da coluna 1
.Cell(1, 1).Merge(docTable.Cell(2, 1)) 'Mesclar a célula (1, 1) com a célula (2, 1)
.Cell(1, 1).Range.Text = "Texto"'Inserir texto na célula (1, 1)
.Cell(1, 1).Range.Font.Bold = 1 'Texto da célula (1, 1) em negrito
.Cell(1, 1).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter 'Alinhamento horizontal do texto na célula (1, 1)
.Cell(1, 1).VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter 'Alinhamento vertical do texto na célula (1, 1)
.Cell(1, 1).Borders(Word.WdBorderType.wdBorderTop).Color = Word.WdColor.wdColorBlue 'Altera a cor da borda superior da célula (1, 1)
.Cell(1, 1).Borders(Word.WdBorderType.wdBorderTop).LineStyle = Word.WdLineStyle.wdLineStyleSingle 'Altera o estilo da linha da borda superior da célula (1, 1)
.Cell(1, 1).Borders(Word.WdBorderType.wdBorderTop).LineWidth = Word.WdLineWidth.wdLineWidth025pt 'Altera o tamanho da linha da borda superior da célula (1, 1)
.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle 'Estilo das bordas internas da tabela
.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle 'Estilo das bordas externas da tabela
End With
Estes são os principais comandos. Explore outros.
Simples, não?
Marcadores:
Formatação,
Tabela,
Vb.Net,
Word
terça-feira, 3 de julho de 2012
Adicionar e formatar um parágrafo em um documento de Word
Para adicionar e formatar um parágrafo em um documento de Word, abra um documento conforme mostrado neste
post e utilize os seguintes comandos:
Dim docPara As Word.Paragraph
docPara = docDoc.Paragraphs.Add
With docPara.Range
.Text = "Inserir o Texto"
.Font.Name = "Arial" 'Nome da fonte
.Font.Size = 12 'Tamanho da fonte
.Font.Bold = 1 'Em negrito ou não
.Font.Italic = 0 'Em itálico ou não
.Font.Color = 0 'Cor da fonte
.Underline = Word.WdUnderline.wdUnderlineDouble 'Sublinhado ou não e os tipos de sublinhado
.ParagraphFormat.Alignment = Word. WdParagraphAlignment.wdAlignParagraphDistribute 'Alinhamento do parágrafo
.ParagraphFormat.SpaceBefore = 2 'Espaço antes do parágrafo
.ParagraphFormat.SpaceAfter = 2 'Espaço após o parágrafo
.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceAtLeast 'Opções de espaçamento entre linhas
.ParagraphFormat.LineSpacing = 2 'Espaço entre linhas
.InsertParagraphAfter() 'Inserir o parágrafo
End With
Os comandos acima são os principais. Explore outras opções da .Font e .ParagraphFormat.
Simples, não?
Dim docPara As Word.Paragraph
docPara = docDoc.Paragraphs.Add
With docPara.Range
.Text = "Inserir o Texto"
.Font.Name = "Arial" 'Nome da fonte
.Font.Size = 12 'Tamanho da fonte
.Font.Bold = 1 'Em negrito ou não
.Font.Italic = 0 'Em itálico ou não
.Font.Color = 0 'Cor da fonte
.Underline = Word.WdUnderline.wdUnderlineDouble 'Sublinhado ou não e os tipos de sublinhado
.ParagraphFormat.Alignment = Word. WdParagraphAlignment.wdAlignParagraphDistribute 'Alinhamento do parágrafo
.ParagraphFormat.SpaceBefore = 2 'Espaço antes do parágrafo
.ParagraphFormat.SpaceAfter = 2 'Espaço após o parágrafo
.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceAtLeast 'Opções de espaçamento entre linhas
.ParagraphFormat.LineSpacing = 2 'Espaço entre linhas
.InsertParagraphAfter() 'Inserir o parágrafo
End With
Os comandos acima são os principais. Explore outras opções da .Font e .ParagraphFormat.
Simples, não?
Marcadores:
Formatação,
Parágrafo,
Vb.Net,
Word
terça-feira, 19 de junho de 2012
Como abrir um documento do Microsoft Word
Para abrir um
documento do Microsoft Word você precisa adicionar ao seu projeto a referência
COM: Microsoft Word 12.0 Object Library ou inferior.
Adicione antes da declaração da Class Form o
seguinte código:
Imports
Word = Microsoft.Office.Interop.Word
Para abrir um
novo documento insira os seguintes comandos em um procedimento ou função:
Dim
docWord As New Word.Application
Dim
docDoc As Word.Document = docWord.Documents.Add
docWord.Visible
= True
Para abrir um
documento word qualquer insira os seguintes comandos em um procedimento ou
função:
Dim
docWord As New Word.Application
Dim docDoc As Word.Document =
docWord.Documents.Open ("caminho/nomedodocumento.extensão")
docWord.Visible
= True
Simples, não?
quinta-feira, 8 de setembro de 2011
Converter cores de VB para Word e vice-versa
Quem trabalha com aplicações para edição de documentos Word pode ter se
percebido que o sistema de codificação numérica de cores do VB e do Word são
diferentes. Por exemplo, o código númerico para preto em VB é -16777216 e em
Word é 0.
A função a seguir converte a cor de um sistema para o outro:
Public Function ConverterCor(ByVal int As Integer) As Integer
Dim R, G, B As Integer
If int >= 0 Then 'Word
If int <= 255 Then
B = 0
G = 0
R = int
ElseIf int <= 65535 And int > 255 Then
B = 0
G = int \ 256
R = int - 256 * G
ElseIf int > 65535 Then
B = int \ 65536
G = (int - 65536 * B) \ 256
R = int - 65536 * B - 256 * G
End If
ConverterCor = 65536 * R + 256 * G + B - 16777216
Else 'VB
If int <= -16776961 Then
R = 0
G = 0
B = int + 16777216
ElseIf int > -16776961 And int <= -16711681 Then
R = 0
G = (int + 16777216) \ 256
B = int + 16777216 - 256 * G
ElseIf int > -16711681 Then
R = (int + 16777216) \ 65536
G = (int + 16777216 - 65536 * R) \ 256
B = int + 16777216 - 65536 * R - 256 * G
End If
ConverterCor = R + 256 * G + 65536 * B
End If
End Function
Esta função reconhece qual o sistema que foi inserido e retorna o outro.
A seguir exemplos para de aplicação desta função:
WordDoc.Paragraph.Font.Color = ConverterCor(TextBox1.ForeColor.toArgb)
TexBox1.ForeColor = Color.FromArgb(ConverterCor(WordDoc.Paragraph.Font.Color))
Este não foi simples não. Deu muito trabalho para descobrir as codificações.
A função a seguir converte a cor de um sistema para o outro:
Public Function ConverterCor(ByVal int As Integer) As Integer
Dim R, G, B As Integer
If int >= 0 Then 'Word
If int <= 255 Then
B = 0
G = 0
R = int
ElseIf int <= 65535 And int > 255 Then
B = 0
G = int \ 256
R = int - 256 * G
ElseIf int > 65535 Then
B = int \ 65536
G = (int - 65536 * B) \ 256
R = int - 65536 * B - 256 * G
End If
ConverterCor = 65536 * R + 256 * G + B - 16777216
Else 'VB
If int <= -16776961 Then
R = 0
G = 0
B = int + 16777216
ElseIf int > -16776961 And int <= -16711681 Then
R = 0
G = (int + 16777216) \ 256
B = int + 16777216 - 256 * G
ElseIf int > -16711681 Then
R = (int + 16777216) \ 65536
G = (int + 16777216 - 65536 * R) \ 256
B = int + 16777216 - 65536 * R - 256 * G
End If
ConverterCor = R + 256 * G + 65536 * B
End If
End Function
Esta função reconhece qual o sistema que foi inserido e retorna o outro.
A seguir exemplos para de aplicação desta função:
WordDoc.Paragraph.Font.Color = ConverterCor(TextBox1.ForeColor.toArgb)
TexBox1.ForeColor = Color.FromArgb(ConverterCor(WordDoc.Paragraph.Font.Color))
Este não foi simples não. Deu muito trabalho para descobrir as codificações.
Assinar:
Postagens (Atom)