Divertidamente Excel
Neste mês de férias escolares, vi que a capa da trilha sonora do filme Divertidamente (o antigo, não o novo) é como a seguinte.
Dá para criar facilmente uma versão em VBA. Veja como.
No VBA, o comando para inserir um shape é:
ActiveSheet.Shapes.AddShape(msoShapeOval, x, y, raio, raio)
Posso encapsular o comando numa função, a fim de dar a posição e ela traçar um shape circular.
Private Sub addCirculo(x, y, raio)
ActiveSheet.Shapes.AddShape(msoShapeOval, x — raio, y — raio, 2 * raio, 2 * raio).Select
end sub
A seguir, mando criar um grid de shapes de 10 x 10:
Sub Divertidamente()
Dim x As Single
Dim y As Single
Dim tamanho As Single
Dim i As Integer, j As Integer
tamanho = 10 ‘pixels
Application.ScreenUpdating = False
‘Deleta shapes atuais
Call delshapes
For i = 1 To 10
For j = 1 To 10
x = 50 + (2 * tamanho + 4) * i
y = 50 + (2 * tamanho + 4) * j
addCirculo x, y, tamanho
Next j
Next i
End Sub
O problema é que os shapes serão sempre da cor default, no caso, azul.
Quero que as cores sejam das cores do Divertidamente: amarelo, roxo, azul, verde, vermelho e cinza.
É possível controlar as cores através de um código como o seguinte.
With Selection.ShapeRange.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(r, g, b)
.Transparency = 0
.Solid
End With
Para encontrar o código RGB das cores desejadas, é só consultar no site a seguir.
RGB Color Codes Chart 🎨 (rapidtables.com)
Por exemplo, o amarelo tem código (255,255,0) e o azul (0, 0, 255).
A seguir, para cada shape circular, sorteio uma das cores (incluindo preto, para dar ilusão de que está vazio).
‘sorteia a cor
idx = Application.WorksheetFunction.RandBetween(1, 7)
Select Case idx
Case 1:
‘Amarelo
r = 255
g = 255
b = 0
Case 2:
‘Azul
r = 0
g = 0
b = 255
etc…
Vide a planilha no Github ( https://github.com/asgunzi/DivertidamenteExcel). É necessário ativar macros para rodar.
Todas as vezes que rodar, vai dar um resultado diferente.
Talvez seja necessário desbloquear a planilha. Quando confiamos na fonte que gerou a mesma, podemos fazer o seguinte:
- Clicar no arquivo com o botão direito do mouse, em propriedades
- Desbloquear o arquivo, conforme mostrado abaixo
Originally published at http://ferramentasexcelvba.wordpress.com on July 9, 2024.