Programmatisch vakken tekenen met code - VBA-codevoorbeelden

VBA Draw-boxen met code

Er zijn veel redenen waarom je programmatisch dozen zou willen kunnen tekenen, zou een geautomatiseerd Gantt-diagram cool zijn? Hier is een manier om het te doen.

Dit is de basiscode om een ​​doos te tekenen:

12345678910 ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12.75).SelecteerSelectie.ShapeRange.Fill.ForeColor.SchemeColor = 11Selectie.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue

Het is echt niet zo ontmoedigend, er zijn maar twee opvallende dingen om naar te kijken; Schemecolor is uiteraard de kleur en de 0,0,48,12.75.

Dus wat is de 0,0,48,12.75? Gewoon de linkerpositie, bovenste positie, breedte en hoogte. U kunt deze naar wens aanpassen, door de eerste twee aan te passen om de positie van de dozen op het scherm te wijzigen en de laatste twee om de grootte van de doos te wijzigen. Ik heb deze afmetingen gebruikt omdat ze een goede gok waren om een ​​doos zo groot als een cel te maken.

En hier is de code die wordt gebruikt om de groene vakken in de bovenstaande afbeelding dynamisch te tekenen:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 Sub DynamicBoxes()Dim x als dubbel'Hierdoor ontstaan ​​horizontale dozenVoor x = 0 tot 240 Stap 48'verwijzing naar de 4 cijfers links, boven, breedte, hoogte'ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12.75).SelecteerSelectie.ShapeRange.Fill.ForeColor.SchemeColor = 11Selectie.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueVolgende x'Hierdoor worden verticale dozen'Voor x = 0 tot 127,5 Stap 12,75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12.75).SelecteerSelectie.ShapeRange.Fill.ForeColor.SchemeColor = 11Selectie.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueVolgende xEinde sub

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave