Dibujar cuadros mediante programación con código - Ejemplos de código VBA

Cajas de dibujo de VBA con código

Hay muchas razones por las que es posible que desee poder dibujar cuadros mediante programación, ¿un diagrama de Gantt automatizado sería genial? Aquí tienes una forma de hacerlo.

Este es el código básico para dibujar un cuadro:

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

Realmente no es tan desalentador, solo hay dos cosas notables para mirar; Schemecolor es obviamente el color y el 0,0,48,12,75.

Entonces, ¿cuál es el 0,0,48,12,75? Simplemente la posición izquierda, la posición superior, el ancho y la altura. Puede ajustarlos como desee, ajustando los dos primeros para cambiar la posición de los cuadros en la pantalla y los dos últimos para cambiar el tamaño del cuadro. Usé estas dimensiones porque eran una buena suposición para hacer una caja del mismo tamaño que una celda.

Y aquí está el código utilizado para dibujar dinámicamente los cuadros verdes en la imagen de arriba:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 Sub DynamicBoxes ()Dim x como doble'Esto hace que las cajas horizontalesPara x = 0 a 240 Paso 48'referencia a los 4 números a la izquierda, arriba, ancho, altoActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12,75) .SeleccionarSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueSiguiente x'Esto hace que las cajas verticalesPara x = 0 a 127,5 Paso 12,75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12,75) .SeleccioneSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueSiguiente xEnd Sub

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave