Descubra como fazer figuras agradáveis com retângulos dispostos aleatoriamente e algumas linhas de código, em Excel – VBA.

Para traçar um único retângulo no VBA, utilizar o comando a seguir:
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 30, 50, 30).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 200)
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Este vai traçar um retângulo nas coordenadas (x,y) = (50,30), com largura 50 e altura 30. Cor azul escuro e contorno preto.
Mais uma linha, para dizer a transparência de 70% – isso para destacar a intersecção com cores diferentes.
Selection.ShapeRange.Fill.Transparency = 0.7
Se colocarmos tudo dentro de um loop for, sem aleatoriedade alguma, teremos um grid de retângulos.
For i = 1 To 12
For j = 1 To 12
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50 * j, 30 * i, 50, 30).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 200)
Selection.ShapeRange.Fill.Transparency = 0.7
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Next j
Next i

Já o resultado fica um pouco mais interessante se acrescentarmos alguma aleatoriedade na disposição e tamanho dos retângulos.
Isso pode ser feito utilizando a função Math.Rnd, que dá um número aleatório entre 0 e 1. No caso, a função mexerá um pouquinho na posição (x,y) e um pouquinho no tamanho (width, height).
For i = 1 To 12
For j = 1 To 12
ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50 * j + 4 * Math.Rnd - 2, 30 * i + 4 * Math.Rnd - 2, 50 + 10 * Math.Rnd, 30 + 10 * Math.Rnd).Select
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(0, 0, 200)
Selection.ShapeRange.Fill.Transparency = 0.7
Selection.ShapeRange.Line.ForeColor.RGB = RGB(0, 0, 0)
Next j
Next i
Algo curioso é que uma disposição totalmente aleatória ou totalmente ordeira fica menos bonita do que uma figura parcialmente ordenada, porém, com um grau de incerteza.

Podemos acrescentar uns blocos de cor amarela, sobrepostos aleatoriamente.

Finalmente, acrestamos mais alguns blocos azuis.

Não chega a ser um quadro de Mondrian, mas dá para brincar um pouco.
O mesmo pode ser feito com outras cores e outras doses de caos / ordem.

Para baixar a planilha, link: ArteRetangulos.xlsm
Confira a versão D3 – Javascript on-line em:
https://asgunzi.github.io/Arte-Retangulos—D3-JS/ArteRetangulos.html
Veja também:
Republicou isso em e comentado:
Post do meu blog sobre Excel: Arte com retângulos.
CurtirCurtir