domingo, 15 de julho de 2012

Adicionar e formatar um cabeçalho e rodapé em um documento de Word

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?

quinta-feira, 12 de julho de 2012

Colocar texto na área de transferência

Para colocar um texto na área de transferência utilize o seguinte código:

Clipboard.SetDataObject("String", True)

A String pode ser um TextBox.Text.

Para retirar o texto da área de transferência utilize o seguinte código:

Clipboard.GetDataObject().GetData(DataFormats.Text).ToString()

Para limpar a área de transferência utilize o seguinte código:

Clipboard.Clear()

Simples, não?

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?

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?

segunda-feira, 2 de julho de 2012

Colocando uma máscara de hora em um Textbox

'Cancelar as teclas de letras, acentos e outros caracteres não numéricos
If Not Char.IsNumber(e.KeyChar) And e.KeyChar <> Chr(8) And e.KeyChar <> Chr(13) Then
      e.Handled = True
End If

'Máscara de data com a barra
If IsNumeric(e.KeyChar) = True Then
      Select Case TextBox1.TextLength
            Case 0
                  TextBox1.Text =
""
            Case 2
                  TextBox1.Text = TextBox1.Text +
":"
                  TextBox1.SelectionStart = 4

      End Select
End If

'Limita o textbox a 5 caracteres
If TextBox1.TextLength = 5 Then
      If Not e.KeyChar = Chr(8) Then
            e.Handled =
True
            TextBox1.SelectionStart = TextBox1.TextLength

      End If
End If

'Retirar o : das posições e o número anterior quando Backspace é pressionada
If
TextBox1.TextLength &lt;&gt; 0 Then
      If e.KeyChar = Chr(8) And TextBox1.TextLength = TextBox1.Text.LastIndexOf(":") + 1 Then
            TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.TextLength - 1)
            TextBox1.SelectionStart = TextBox1.TextLength

      End If
End If

sexta-feira, 29 de junho de 2012

Como impedir que seu aplicativo seja executado duas vezes ao mesmo tempo

Para impedir que seu aplicativo tenha duas execuções ao mesmo tempo, basta adicionar o código abaixo no evento Load do formulário de inicialização:

Dim i As Integer = 0
For Each processo As Process In Process.GetProcesses()
      If processo.ProcessName = "Nome do seu aplicativo" Then
            i += 1
      End If
Next processo
If i = 2 Then
     
Application.Exit()
End If

O nome do seu aplicativo você obtém ou altera em Solution Explorer / My Project / Application / Assembly Name.

Simples, não?

terça-feira, 26 de junho de 2012

CapsLock, NumLock ou ScrollLock estão ativados?

Para saber se as teclas CapsLock, NumLock ou ScrollLock estão ativadas utilize dos códigos abaixo:

Dim bln As Boolean

bln =
My.Computer.Keyboard.CapsLock
bln =
My.Computer.Keyboard.NumLock
bln =
My.Computer.Keyboard.ScrollLock

Estes códigos retornaram True se a tecla correspondente estiver ativa e False se não estiver ativada.

Simples, não?

terça-feira, 19 de junho de 2012

Como abrir um documento de Microsoft Excel

Para abrir um documento do Microsoft Excel você precisa adicionar ao seu projeto a referência COM: Microsoft Excel 12.0 Object Library ou inferior.

Adicione antes da declaração da Class Form o seguinte código:

Imports Excel = Microsoft.Office.Interop.Excel

Para abrir um novo documento insira os seguintes comandos em um procedimento ou função:

Dim excelApp As New Excel.Application
Dim excelBook As Excel.Workbook = excelApp.Workbooks.Add
excelApp.Visible =
True

Para abrir um documento Excel qualquer insira os seguintes comandos em um procedimento ou função:

Dim excelApp As New Excel.Application
Dim excelBook As Excel.Workbook = excelApp.Workbooks.Open("caminho/nomedodocumento.extensão")
excelApp.Visible =
True

Simples, não?

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?

segunda-feira, 14 de maio de 2012

Como imprimir um Form

Para imprimir um Form utilize o componente PrintForm do Visual Power Packs.















Os comandos principais são:

1. Para configurar a orientação da página:

PrintForm1.PrinterSettings.DefaultPageSettings.Landscape =
Boolean

Se Boolean = True, o Form será impresso na orientação Paisagem, se Boolean = False, o Form será impresso na orientação Retrato.

2. Para configurar um tamanho personalizado de papel:

PrintForm1.PrinterSettings.DefaultPageSettings.PaperSize =
New System.Drawing.Printing.PaperSize("String", Int1, Int2)

onde String é um nome para o tamanho do papel e Int1 é um número inteiro para o largura em centésimos de polegada e Int2 é um número inteiro para o comprimento em centésimos de polegada.

3. Para configurar as margens da impressão:

PrintForm1.PrinterSettings.DefaultPageSettings.Margins =
New System.Drawing.Printing.Margins(Int1, Int2, Int3, Int4)

onde Int1, Int2, Int3 e Int4 são números inteiros que cuja unidade é em centésimos de polegada e representam, respectivamente, margem esquerda, direita, superior e inferior. Lembrando que 1 polegada = 2,54 centímetros.

PrintForm1.PrintAction = PrintAction

onde há três opções para a PrintAction

PrintAction.PrintToFile: Imprime para um arquivo;
PrintAction.PrintToPreview: Exibe uma prévia da página antes da impressão;
PrintAction.PrintToPrinter: Imprime diretamente na impressora padrão.

Para utilizar o PrintToFile você deve definir antes para qual arquivo a figura do Form irá com o seguinte comando:
PrintForm1.PrintFileName =
"C:\Teste.eps"

A extensão do arquivo deve ser necessariamente o eps (Para saber mais: http://pt.wikipedia.org/wiki/Encapsulated_PostScript).

5. Para imprimir o Form:

PrintForm1.Print(
Form, printOption)

onde
Form é o formulário que ser quer imprimir, se for o formulário onde está o comando utilize o Me, e as opções de printOption são as seguintes:

PowerPacks.Printing.
PrintForm.PrintOption.ClientAreaOnly: Utiliza uma nova implementação para imprimir a área cliente visível no momento.
PowerPacks.Printing.
PrintForm.PrintOption.CompatibleModeClientAreaOnly: Usa a implementação de impressão compatível para imprimir a área cliente visível no momento.
PowerPacks.Printing.
PrintForm.PrintOption.CompatibleModeFullWindow: Usa a implementação de impressão compatível para imprimir o formulário de área visível no momento. Isso inclui a barra de título, barras de rolagem e borda.
PowerPacks.Printing.
PrintForm.PrintOption.FullWindow: Utiliza uma nova implementação para imprimir o formulário visível no momento. Isso inclui a barra de título, barras de rolagem e borda.
PowerPacks.Printing.
PrintForm.PrintOption.Scrollable: Utiliza uma nova implementação para imprimir a área inteira do cliente, embora alguns estão fora de vista.

Simples, não?

Arrastar e Soltar um componente

Para criar o efeito de arrastar e soltar para componentes de um Form, coloque os seguintes códigos nos eventos correspondente ao componente:

Public Class Form1

     
Dim drag As Boolean
      Dim ptX, ptY As Double

      Private Sub Componente_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseDown

            drag = True
            ptX = e.X
            ptY = e.Y

      End Sub

      Private Sub Componente_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseMove

            If drag = True Then
                  Componente.Location = New Point(Componente.Location.X + e.X - ptX, Componente.Location.Y + e.Y - ptY)                  
                  Me.Refresh()
            End If
     
End Sub


      Private Sub Componente_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseUp

            drag = False

      End Sub

End Class


Se quiser especificar qual botão acionará o efeito de arrastar e soltar, coloque o código abaixo em Componente_MouseDown:


If e.Button = Windows.Forms.MouseButtons.Right Then
      drag = True
      ptX = e.X : ptY = e.Y
End If

Simples. não? Confesso que tirei da página do MSDN.