Desenhar caixas programaticamente com código - exemplos de código VBA

VBA Draw Boxes com Código

Há muitos motivos pelos quais você pode querer desenhar caixas programaticamente. 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:

12345678910 ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12,75). SelecioneSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue

Realmente não é tão assustador, existem apenas duas coisas notáveis ​​para se olhar; Schemecolor é obviamente a cor e o 0,0,48,12.75.

Então, qual é 0,0,48,12.75? Simplesmente a posição esquerda, posição superior, largura e 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 um bom palpite 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:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 Sub DynamicBoxes ()Dim x As Double'Isso torna as caixas horizontaisPara x = 0 a 240 Etapa 48'referência aos 4 números à esquerda, topo, largura, alturaActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12,75). SelecioneSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTruePróximo x'Isso torna as caixas verticaisPara x = 0 a 127,5 Etapa 12,75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12,75). SelecioneSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTruePróximo xEnd Sub

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave