24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 9: Usando VBA e Funções de Planilha

131

Sub GetLength()

Dim MyString As String

Dim StringLength As Integer

MyString = “Hello World”

StringLength = Len(MyString)

MsgBox StringLength

End Sub

O Excel também tem uma função Len, que você pode usar em suas

planilhas de fórmulas. A versão do Excel e a função VBA funcionam da

mesma maneira.

Exibindo a parte inteira de um número

O seguinte procedimento usa a função Fix (corrigir), a qual retorna a

parte inteira de um valor — o valor sem quaisquer casas decimais:

Sub GetIntegerPart()

Dim MyValue As Double

Dim IntValue As Integer

MyValue = 123.456

IntValue = Fix(MyValue)

MsgBox IntValue

End Sub

LEMBRE-SE

Neste caso, a caixa de mensagem exibe 123.

VBA tem uma função semelhante, chamada Int. A diferença entre Int e

Fix é como cada uma lida com números negativos. Trata-se de uma

diferença sutil, mas, às vezes, é importante.

55

Int retorna o primeiro inteiro negativo que é menor ou igual ao

argumento. Fix (-123.456) retorna -124.

55

Fix retorna o primeiro inteiro negativo que é maior ou igual ao

argumento. Fix (-123.456) retorna -123.

Determinando o tamanho de um arquivo

O procedimento Sub a seguir exibe o tamanho, em bytes, de um arquivo

Excel executável. Ele encontra o seu valor usando a função FileLen

(extensão de arquivo).

Sub GetFileSize()

Dim TheFile As String

TheFile = “C:\Program Files\Microsoft Office\

Office14\Excel.exe”

MsgBox FileLen(TheFile)

End Sub

Veja que essa rotina restringe os códigos do nome de arquivo (isto é,

declara explicitamente o caminho). Em geral, essa não é uma boa ideia. O

arquivo poderia não estar no drive C, ou a pasta do Excel pode ter um

nome diferente. A seguinte declaração mostra uma abordagem melhor:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!