Obsah
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 |