Programově kreslit pole s kódem - příklady kódu VBA

VBA Draw boxy s kódem

Existuje mnoho důvodů, proč byste mohli chtít programově kreslit boxy, automatizovaný Ganttův diagram by byl skvělý? Zde je jeden způsob, jak to udělat.

Toto je základní kód pro nakreslení rámečku:

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

Opravdu to není tak skličující, stačí se podívat na dvě pozoruhodné věci; Schemecolor je samozřejmě barva a 0,0,48,12,75.

Co je tedy 0,0,48,12,75? Jednoduše levá pozice, horní pozice, šířka a výška. Můžete je upravit, jak chcete, upravením prvních dvou změňte polohu políček na obrazovce a druhými dvěma změňte velikost rámečku. Tyto rozměry jsem použil, protože byly dobrým odhadem při výrobě krabice stejné velikosti jako buňka.

A zde je kód použitý k dynamickému vykreslení zelených políček na výše uvedeném obrázku:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 Dílčí dynamické boxy ()Dim x As Double`` To dělá horizontální boxyPro x = 0 až 240 Krok 48'odkaz na 4 čísla vlevo, nahoře, na šířku, na výškuActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12,75). VyberteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueDalší x`` To dělá svislé boxyPro x = 0 až 127,5 Krok 12.75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12,75). VyberteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueDalší xEnd Sub
wave wave wave wave wave