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.

segunda-feira, 26 de setembro de 2011

Retirar o botão de fechar da barra de títulos

Para retirar o botão de fechar da barra de títulos insira o código a seguir abaixo do Public Class Form1

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal bRevert As Integer) As Integer
Private
Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
Private Const
SC_CLOSE = &HF060&
Private Const MF_BYCOMMAND = &H0&

Insira também a função abaixo:

Function RemoveXButton(ByVal iHWND As Integer) As Integer
      Dim
iSysMenu As Integer
     
iSysMenu = GetSystemMenu(iHWND, False)
     
Return RemoveMenu(iSysMenu, SC_CLOSE, MF_BYCOMMAND)
End Function

E em Form1_load coloque o seguinte comando:

RemoveXButton(
Me.Handle())

Para retirar o botão de Maximinizar e Minimizar vá em Propriedades do Form1 e coloque
False em MaximizeBox e MinimizeBox.

Simples, não?

quarta-feira, 21 de setembro de 2011

Funções para data com o primeiro dia de um mês, último dia de um mês e verificação se o ano é bissexto

Abaixo estão os códigos das funções que devolvem a data com o primeiro dia do mês, último dia do mês e se um ano é bissexto. Coloque estes códigos em um Módulo ou Class Form.

Public Function IniciodoMes(ByVal intData As Integer) As Integer

      Dim
intMes, intAno As Integer

     
intMes = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "MM"))
      intAno =
CInt(Format(DateAdd(DateInterval.Day, intData, constData), "yyyy"))
      IniciodoMes = DateDiff(
DateInterval.Day, constData, DateSerial(intAno, intMes, 1))

End Function

Public Function
FimdoMes(ByVal intData As Integer) As Integer

      Dim
intDia, intMes, intAno As Integer

     
intMes = CInt(Format(DateAdd(DateInterval.Day, intData, constData), "MM"))
      intAno =
CInt(Format(DateAdd(DateInterval.Day, intData, constData), "yyyy"))

     
Select Case intMes
            Case 4, 6, 9, 11
                  intDia = 30
            Case 2
                  If Bissexto(intAno) = True Then
                       
intDia = 29
                  Else
                       
intDia = 28
                  End If
            Case Else
                 
intDia = 31
      End Select

     
FimdoMes = DateDiff(DateInterval.Day, constData, DateSerial(intAno, intMes, intDia))

End Function

Public Function
Bissexto(ByVal intAno As Integer) As Boolean

     
Bissexto = False
      If
intAno Mod 4 = 0 Then
           
Bissexto = True
      Else
           
Bissexto = False
      End If

End Function


Simples, não?

terça-feira, 20 de setembro de 2011

Como formatar datas, tempos e números do jeito que você precisa

Para alterar os formatos de data, tempo e número utilizamos a função “Format”.

A sintaxe da função é: Format(Byval Expressão as Object, Optional Byval Estilo as String = “”) e retorna uma string.

Expressão é a informação que você quer mudar de formato.
Estilo é o tipo de estilo que será a informação e formatos pré-definidos e formatos que você pode definir combinando-os conforme a necessidade. Todos os estilos devem ser colocados entre aspas.

1 – Formatos Pré-definidos

1.1 – Datas e tempos

General Date ou G Format(#1/1/2011 11:11:11 AM#, “G”) = “1/1/2011 11:11:11”
Format(#1/1/2011 11:11:11 PM#, “G”) = “1/1/2011 23:11:11”
Long Date, Medium Date, ou D Format(#1/1/2011 11:11:11 AM#, “Long Date”) = “sábado, 1 de janeiro de 2011”
Short Date ou d Format(#1/1/2011 11:11:11 AM#, “Short Date”) = “01/01/2011”
Long Time, Medium Time ou T Format(#1/1/2011 11:11:11 AM#, “T”) = “11:11:11”
Format(#1/1/2011 11:11:11 PM#, “T”) = “23:11:11”
Short Time ou t Format(#1/1/2011 11:11:11 AM#, “t”) = “11:11”
Format(#1/1/2011 11:11:11 PM#, “t”) = “23:11”
F Format(#1/1/2011 11:11:11 AM#, “F”) = “sábado, 1 de janeiro de 2011 11:11:11”
Format(#1/1/2011 11:11:11 PM#, “F”) = “sábado, 1 de janeiro de 2011 23:11:11”
f Format(#1/1/2011 11:11:11 AM#, “f”) = “sábado, 1 de janeiro de 2011 11:11”
Format(#1/1/2011 11:11:11 PM#, “f”) = “sábado, 1 de janeiro de 2011 23:11”
g Format(#1/1/2011 11:11:11 AM#, “g”) = “01/01/2011 11:11”
Format(#1/1/2011 11:11:11 PM#, “g”) = “01/01/2011 23:11”
M, m Format(#1/1/2011 11:11:11 AM#, “M”) = “01 de janeiro”
R, r Format(#1/1/2011 11:11:11 AM#, “R”) = “Sat, 01 Jan 2011 11:11:11 GMT”
Format(#1/1/2011 11:11:11 PM#, “r”) = “Sat, 01 Jan 2011 23:11:11 GMT”
s Format(#1/1/2011 11:11:11 AM#, “s”) = “2011-01-01T11:11:11”
Format(#1/1/2011 11:11:11 PM#, “s”) = “2011-01-01T23:11:11”
u Format(#1/1/2011 11:11:11 AM#, “u”) = “2011-01-01 11:11:11Z”
Format(#1/1/2011 11:11:11 PM#, “u”) = “2011-01-01 23:11:11Z”
U Format(#1/1/2011 11:11:11 AM#, “U”) = “sábado, 1 de janeiro de 2011 13:11:11”
Format(#1/1/2011 11:11:11 PM#, “U”) = “domingo, 2 de janeiro de 2011 01:11:11”
Y, y Format(#1/1/2011 11:11:11 AM#, “Y”) = “janeiro de 2011”

1.2 - Numérico

General Number, G ou g Converte o número em um modo compacto e com quantos algarismos significativos.
Format(12345.6789, “G”) = “12345,6789”
Format(12345.6789, “G4”) = “1,235E+04”
Format(12345.6789, “G7”) = “12345,7”
Currency, C ou c Converte o número em unidade monetária e com quantos algarismos após a vírgula arredondando o valor.
Format(12345.6789, “C”) = “R$ 12.345,68”
Format(12345.6789, “C0”) = “R$ 12.346”
Format(12345.6789, “C6”) = “R$ 12.345,678900”
Fixed, F ou f Especifica o número de casas decimais arredondando o valor.
Format(12345.6789, “F”) = “12345,68”
Format(12345.6789, “F0”) = “12346”
Format(12345.6789, “F5”) = “12345,67890”
Standard, N ou n Converte o número para o modo com separadores de milhares e decimais especificando o número de casas decimais arredondando o valor.
Format(12345.6789, “N”) = “12.345,68”
Format(12345.6789, “N0”) = “12.346”
Format(12345.6789, “N5”) = “12.345,67890”
Percent Multiplica o número por 100 e com o símbolo %
Format(12345.6789, “Percent”) = “1234567,89%
P ou p Multiplica o número por 100 e com o símbolo % e com quantos algarismos após a vírgula arredondando o valor.
Format(12345.6789, “P”) = “1.234.567,89%”
Format(12345.6789, “P0”) = “1.234.568%
Format(12345.6789, “P”) = “1.234.567,89000%”
Scientific Converte o número em notação científica com 3 algarismos significativos.
Format(12345.6789, “Scientific”) = “1,23E+04”
E ou e Converte o número em notação científica e com quantos algarismos após a vírgula arredondando o valor.
Format(12345.6789, “E”) = “1,234568E+004”
Format(12345.6789, “E0”) = “1E+004”
Format(12345.6789, “E5”) = “1,23457E+004”
Format(12345.6789, “e”) = “1,234568e+004”
Format(12345.6789, “e0”) = “1e+004”
Format(12345.6789, “e5”) = “1,23457e+004”
D ou d Converte o número para a base Decimal e com quantos algarismos o número será retornado. Válido apenas para números inteiros.
Format(123456789, “D11”) = “00123456789”
X ou x Converte o número para a base Hexadecimal
Format(123456789, “X”) = “75BCD15”
Format(123456789, “x”) = “75bcd15”
Yes/No Format(0, “Yes/No”) = “Não” Format(2, “Yes/No”) = “Sim”
True/False Format(0, “True/False”) = “False”
Format(2, “True/False”) = “True”
On/Off Format(0, “On/Off”) = “Desativar”
Format(2, “On/Off”) = “Ativar”

2 – Formatos definidos pelo usuário
Combine os códigos abaixo para obter os valores no formato desejado

2.1 - Datas e tempos
Observação: quando escrevemos as datas no código VB, o mês é antes do dia, segue o padrão inglês.

: Separador de tempo utilizado para separar horas, minutos e segundos.
/ de data utilizado para separar dia, mês e ano.
d Mostra o dia como número sem o primeiro zero
Format(#1/2/2003 12:34:56 AM#, "d/M") = "2/1".
dd Mostra o dia como número com o primeiro zero
Format(#1/2/2003 12:34:56 AM#, "dd") = "02".
ddd Mostra a abreviatura do dia.
Format(#1/2/2003 12:34:56 AM#, "ddd") = "qui"
dddd Mostra o nome inteiro do dia.
Format(#1/2/2003 12:34:56 AM#, "dddd") = "quinta-feira"
M Mostra o mês como um número sem o primeiro zero.
Format(#1/2/2003 12:34:56 AM#, "d/M") = "1"
MM Mostra o mês como um número com o primeiro zero.
Format(#1/2/2003 12:34:56 AM#, "MM") = "01"
MMM Mostra a abreviatura do mês.
Format(#1/2/2003 12:34:56 AM#, "MMM") = "jan"
MMMM Mostra o nome do mês
Format(#1/2/2003 12:34:56 AM#, "MMMM") = "janeiro"
y Mostra o ano como um número sem o zeros se for entre 0 e 9.
Format(#1/2/2003 12:34:56 AM#, "M/y") = "1/3"
yy Mostra o ano como um número de dois dígitos com o zero quando aplicável.
Format(#1/2/2003 12:34:56 AM#, "yy") = "03"
yyy Mostra o ano como um número de quatro dígitos.
Format(#1/2/2003 12:34:56 AM#, "yyy") = "2003"
yyyy Mostra o ano como um número de quatro dígitos.
Format(#1/2/2003 12:34:56 AM#, "yyyy") = "2003"
gg Mostra a era da data.
Format(#1/2/2003 12:34:56 AM#, "gg") = "d.C."
h Mostra a hora como um número sem o primeiro zero utilizando o formato de 12 horas.
Format(#1/2/2003 12:34:56 AM#, "h:m") = "12:34"
Format(#1/2/2003 12:34:56 PM#, "h:m") = "12:34"
hh Mostra a hora como um número sem o primeiro zero utilizando o formato de 12 horas.
Format(#1/2/2003 12:34:56 AM#, "hh") = "12"
Format(#1/2/2003 12:34:56 PM#, "hh") = "12"
H Mostra a hora como um número sem o primeiro zero utilizando o formato de 24 horas.
Format(#1/2/2003 12:34:56 AM#, "H:m") = "0:34"
Format(#1/2/2003 12:34:56 PM#, "H:m") = "12:34"
HH Mostra a hora como um número com o primeiro zero utilizando o formato de 24 horas.
Format(#1/2/2003 12:34:56 AM#, "HH") = "00"
Format(#1/2/2003 12:34:56 PM#, "HH") = "12"
m Mostra o minuto como um número sem o primeiro zero.
Format(#1/2/2003 12:04:56 AM#, "h:m") = "12:4"
mm Mostra o minuto como um número sem o primeiro zero.
Format(#1/2/2003 12:04:56 AM#, "mm") = "04"
s Mostra o segundo como um número sem o primeiro zero.
Format(#1/2/2003 12:34:06 AM#, "m:s") = "6"
ss Mostra o segundo como um número sem o primeiro zero.
Format(#1/2/2003 12:34:06 AM#, "ss") = "06"
f Mostra a fração de segundos.
Format(Now, "ff") = 89 'Centésimos de segundos
Format(Now, "fffffff") = 6599721 'Décimos de milionésimos de segundo (Máximo)
t Mostra a hora e os minutos em formato 24 horas
Format(#1/2/2003 12:34:56 AM#, "t") = "0:34"
Format(#1/2/2003 12:34:56 PM#, "t") = "12:34"
zz Mostra o fuso horário em formato simples.
Format(Now, "zz") = "-03" 'Fuso de Brasília
zzz Mostra o fuso horário em formato longo.
Format(Now, "zzz") = "-03:00" 'Fuso de Brasília

2.2 - Números

. Separador de decimais.
, Separador de milhar.
0 Se a expressão tiver um dígito na posição onde o 0 aparece na seqüência de formato, exibi-lo, caso contrário, exibe um zero nessa posição.
Format(2, “00”) = “02”
Format(2, “0.00”) = “2,00”
Format(2, “0,000”) = “0.002”
# Se a expressão tiver um dígito na posição onde o # aparece na seqüência de formato, exibi-lo, caso contrário,não exibe nada.
Format(2, “##”) = “2”
Format(2, “#.#”) = “2”
Format(2, “#,###”) = “2”
% Caractere de porcentagem. Multiplica a expressão por 100 e adiciona o caractere %.
Format(2, “0%”) = “200%”
Format(2, “0.0%”) = “200,0%”
Format(2, “0,000%”) = “0.200%”
E+, E-, e+, e- Formato científico. Deve-se usar 0 ou # à direita para exibir os expoentes.
Format(2, “#E+0”) = “2E+0”
Format(0.002, “00E+00”) = “20E-04”
Format(0.002, “00E-00”) = “20E-04”
- + $ ( ) Caracteres literais. São exibidos na sequência que estão na formatação.
Format(2, “R$ 00”) = R$ 02
Format(2, “R$ 0.00”) = “R$ 2,00”
; Divide a formatação entre formato para números positivos e formato para números negativos.
Format(2, “0;0-”) = 2
Format(-2, “0;0-”) = “2-”
Format(-2, “0;(0)” ) = “(2)”
\ Exibe o próximo caractere na sequência do formato ocultando a própria \. Em alguns casos onde se deseja utilizar caracteres que já são específicos para a formatação de datas e tempos pode gerar erro, então utiliza-se a \. Exemplos de caracteres que não podem ser utilizados como literais: caracteres para formatação de data e tempo (a, c, d, h, m, n, p, q, s, t, w, y, /, e :), caracteres para formatação de números (#, 0, %, E, e, vírgula e ponto) e caracteres para formatação de strings (@, &, <, > e !).
Format(2, “d0”) = Erro
Format(2, “\d0”) = “d2”
Format(2, “t00” ) = Erro
Format(2, “\t00”) = "t02”

Agora é só montar a sua formatação.

Simples, não?