Introdução
Indentação é um efeito tipográfico de recuar/afastar um texto de sua margem para ressaltar a estrutura das linhas de código de um programa. Seu efeito direto é melhorar a compreensão do código.
Indentação é um efeito tipográfico de recuar/afastar um texto de sua margem para ressaltar a estrutura das linhas de código de um programa. Seu efeito direto é melhorar a compreensão do código.
Veja o código abaixo:
Sub pMaturidade()
Idade = InputBox("Qual é sua idade?")
Select Case Idade
Case Is < 18
Mensagem = "Aproveite enquanto ainda é adolescente!"
Case 18 To 30
Mensagem = "Está na hora de fazer um pé de meia e depois casar."
Case Is > 30
Filhos = InputBox("Quantos filhos você tem?")
If Filhos > 0 Then
Mensagem = "As responsabilidades só aumentam, mas vale a pena."
Else
Mensagem = "Não acha que está na hora de ter filhos?"
End If
Case Else
Mensagem = "Valor inválido!"
End Select
MsgBox Mensagem
End Sub
Agora, observe o mesmo código abaixo, reescrito indentado:
Sub pMaturidade2()
Idade = InputBox("Qual é sua idade?")
Select Case Idade
Case Is < 18
Mensagem = "Aproveite enquanto ainda é adolescente!"
Case 18 To 30
Mensagem = "Está na hora de fazer um pé de meia e depois casar."
Case Is > 30
Filhos = InputBox("Quantos filhos você tem?")
If Filhos > 0 Then
Mensagem = "As responsabilidades só aumentam, mas vale a pena."
Else
Mensagem = "Não acha que está na hora de ter filhos?"
End If
Case Else
Mensagem = "Valor inválido!"
End Select
MsgBox Mensagem
End Sub
Funcionalmente, os algoritmos são equivalentes. No entanto, o subprocedimento
pMaturidade2 está mais fácil de ler porque seu código está indentado. Veja que o início de uma estrutura Select Case está afastado da margem uma distância igual ao seu final End Select. Com isso, bastar bater os olhos na estrutura do código para saber onde o essa estrutura de decisão inicia e termina.Largura da Tabulação da Indentação
Por padrão, a indentação do VBE é de 4 espaços. No entanto, pessoalmente utilizo 2 espaços. Você pode alterar essa configuração clicando no menu Ferramentas >> controleOpções , então na janela que aparecer, clique na guia Editor >> caixa de texto Largura da tabulação :
Indentando o Código
Na janela de código, a tecla Tab aumenta o recuo de um texto e a combinação Shift+Tabdiminui. Você pode selecionar várias linhas para alterar o recuo de todas elas de uma vez.
A indentação e inclusão extra de linhas em branco são práticas bastante difundidas no universo de programação e utilizo essas técnicas na minha forma de programar. Recomendo que você faça o mesmo.
Exemplos de Indentação
Não é difícil entender quando indentar. A regra geral é que indenta-se tudo que estiver dentro de um bloco
For...Next, If...End If, Select Case...End Select e assim por diante:Sub pGenerateEnumerations() Const clIdentSpaces As Long = 2 Dim sAll As String Dim ws As Excel.Worksheet Dim lCol As Long Dim sText As String Set ws = ActiveSheet With ws For lCol = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column sText = .Cells(1, lCol) sText = StrConv(sText, vbProperCase) sText = Replace(sText, " ", "") sText = Replace(sText, "-", "") If sText <> "" Then If lCol = 1 Then sAll = sAll & String(clIdentSpaces, " ") & sText & " = 1" & vbNewLine Else If .Cells(1, lCol - 1) <> "" Then sAll = sAll & String(clIdentSpaces, " ") & sText & vbNewLine Else sAll = sAll & String(clIdentSpaces, " ") & sText & " = " & lCol & vbNewLine End If End If End If Next lCol End With Debug.Print sAll End Sub
Se alguma linha for muito longa, quebro-a (usando o símbolo _) e mantenho a indentação no mesmo nível da linha de cima:
Sub pDeleteShapes() Dim oShape As Excel.Shape Dim ws As Excel.Worksheet Dim sName As String For Each ws In ActiveWindow.SelectedSheets For Each oShape In ws.Shapes sName = oShape.Name Select Case True Case sName Like "Comment *" Case sName Like "Object *" _ , sName Like "Text Box *" _ , sName Like "Button *" _ , sName Like "Picture *" oShape.Delete Case Else MsgBox Prompt:="Atenção, um novo tipo de objeto " _ & "'Shape' foi encontrado: " & oShape.Name & ".", _ Buttons:=vbExclamation, _ Title:=gcstrProgram Stop End Select Next oShape Next ws End Sub

Parabéns pelo simples, porém muito significativo e útil artigo. Muito objetivo em uma ação pouco abordada nas referência de VBA, mas, extremamente necessária na medida em que facilita a organização e economiza tempo.
ResponderExcluirótima dica
ResponderExcluir