VBA – Desenhar Caixas de Forma Programática com Código
VBA Desenhar Caixas com Código
Há muitos motivos para você querer desenhar caixas de forma programática. Um gráfico de Gantt automatizado seria legal? Aqui está uma maneira de fazer isso.
Este é o código básico para desenhar uma caixa:
ActiveSheet.Shapes.AddShape _
(msoShapeFlowchartProcess, 0, 0, 48, 12.75).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.Visible = msoTrue
Realmente não é tão assustador, há apenas duas coisas notáveis a serem observadas: Schemecolor é obviamente a cor e 0,0,48,12.75.
Então, o que é o 0,0,48,12.75? Simplesmente a posição esquerda, a posição superior, a largura e a altura. Você pode ajustá-los como quiser, ajustando os dois primeiros para alterar a posição das caixas na tela e os dois últimos para alterar o tamanho da caixa. Usei essas dimensões porque eram uma boa estimativa para fazer uma caixa do mesmo tamanho de uma célula.
E aqui está o código usado para desenhar dinamicamente as caixas verdes na imagem acima:
Sub CaixasDinamicas()
Dim x As Double
'Isso cria caixas horizontais
For x = 0 To 240 Step 48
'referência aos 4 números left, top, width, height
ActiveSheet.Shapes.AddShape _
(msoShapeFlowchartProcess, x, 0, 48, 12.75).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.Visible = msoTrue
Next x
'Isso cria caixas verticais
For x = 0 To 127.5 Step 12.75
ActiveSheet.Shapes.AddShape _
(msoShapeFlowchartProcess, 0, x, 48, 12.75).Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 11
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.Visible = msoTrue
Next x
End Sub
Codificação VBA facilitada
Pare de procurar códigos VBA on-line. Saiba mais sobre o AutoMacro – um construtor de código VBA que permite que os iniciantes codifiquem procedimentos do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!