# Visual Basic

O Visual Basic é uma linguagem de programação produzida pela empresa Microsoft, e é parte integrante do pacote Microsoft Visual Studio.
Um aperfeiçoamento do BASIC, a linguagem é dirigida por eventos (event driven), e possui também um ambiente de desenvolvimento integrado (IDE - Integrated Development Environment) totalmente gráfico, facilitando enormemente a construção da interface das aplicações (GUI - Graphical User Interface), daí o nome "Visual".
Existem várias linguagens derivadas, entre as quais:
* VBScript é a linguagem default (por definição) para Active Server Pages e pode ser usada no scripting (programação) de Windows e de páginas da Internet.
* Visual Basic .NET é a nova versão do Visual Basic, que é parte integrante da plataforma Microsoft .NET. Essa versão não é totalmente compatível com as versões anteriores, mas existe a possibilidade de converter códigos antigos, que após uma revisão podem ser usados no Visual Basic .NET. Para fins de comparação, essa linguagem usa o paradigma de Orientação a Objeto e você encontrará muita semelhança com o Java.
* Visual Basic for Applications (VBA) permite a criação de macros, e está integrado em todos os produtos da família de produtos Microsoft Office, e também em outros produtos de terceiros tais como Visio (agora pertencente à Microsoft) e WordPerfect Office 2002.
O que se segue é um resumo da linguagem.

## UserForms

São caixas de diálogo totalmente editáveis que podem ser executados com a instrução Load userformname., onde userformname é o nome do UserForm.
Por exemplo, você pode exibir uma caixa de diálogo com várias opções, de escolha única, por exemplo, Vermelho, Verde e Azul.
Se for selecionado Vermelho, será exibida a mensagem "Muito bem!".
Se o usuário selecionar Verde, ele verá o texto "Nota 10!!!".
Por último caso, se ele escolher Azul, a tela mostrará "Parabéns!"
Esse é um exemplo básico de UserForm.

## Subrotinas

Subrotinas são blocos de instrução. Uma macro executa uma subrotina.
Uma subrotina começa com Sub e termina com End Sub.
Uma subrotina pode receber parâmetros.

## Funções

Um procedimento Function é uma série de instruções do Visual Basic colocadas entre as instruções Function e End Function. Um procedimento Function é semelhante a um procedimento Sub, mas uma função também pode retornar um valor. Um procedimento Function pode utilizar argumentos, como constantes, variáveis ou expressões passadas para ele por um procedimento de chamada. Caso um procedimento Function não tenha argumentos, sua instrução Function deve incluir um conjunto de parênteses vazio. Uma função retorna um valor atribuindo um valor ao seu nome em uma ou mais instruções do procedimento.

## Variáveis

A linguagem possui quatro tipos básicos de variáveis: numéricas, lógicas, strings, datas e objetos. Além disso, é possível definir novos tipos, que combinam tipos existentes (como se fossem estruturas). Dim é a forma de declarar uma variável; como o próprio nome indica, Dim naturalmente serve para declarar vetores, matrizes ou arrays. Um vetor ou matriz declarado com Dim não pode mais ter suas dimensões alteradas, usar ReDim para criar um vetor ou array dinâmico.
A declaração segue a forma:
Na declaração de vetores, matrizes e arrays, deve-se lembrar que o que é declarado é o valor final da dimensão, que começa com zero. Então, uma declaração do tipo Dim m(3,5) As Integer declara uma matriz de (3 + 1) x (5 + 1) inteiros.
Os tipos numéricos são Integer, Long, Single (ponto flutuante, precisão simples), Double (ponto flutuante, precisão dupla) e Currency (para guardar valores monetários com alta precisão).
Variáveis também podem ser declaradas usando um sigil após o Dim. Por exemplo:
Os demais tipos são String, Boolean, Date e Object.
O tipo Object é usado para o tratamento de estruturas complexas.
Como visto acima, Dim é usado para declarar uma variável, um vetor, uma matriz ou estruturas mais complexas. Uma instrução muito útil e praticamente exclusiva do BASIC é Redim, que redimensiona vetores - porém apenas vetores que foram inicialmente declarados com Redim. O exemplo abaixo também ilustra o tratamento de erros (it's easier to ask for forgiveness than permission):

### Estruturas

Uma forma mais complexa de definir variáveis é através de Type ... End Type.
Primeiro, deve-se definir o tipo. A definição dos tipos deve estar fora das subrotinas.
Dentro das subrotinas, o tipo pode ser usado, declarando-se variáveis e atribuindo-se valores:

## Interface gráfica

    Ver módulo principal: /GUI/
O Visual Basic possui uma interface gráfica, que permite a exibição de caixas de mensagem, diálogos, etc.
A forma mais simples é através da função MsgBox (Message Box, ou caixa de mensagem):

## Ver também

* OpenOffice.org/Macro/BASIC - BASIC para macros do OpenOffice