Krabice na kreslenie VBA s kódom
Existuje mnoho dôvodov, prečo by ste chceli mať možnosť programovo kresliť škatule, automatizovaný Ganttov diagram by bol skvelý? Tu je jeden zo spôsobov, ako to urobiť.
Toto je základný kód na nakreslenie rámčeka:
12345678910 | ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12,75). VyberteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
Naozaj to nie je také skľučujúce, existujú iba dve pozoruhodné veci, na ktoré sa treba pozrieť; Schemecolor je očividne farba a 0,0,48,12,75.
Čo je teda 0,0,48,12,75? Jednoducho ľavá pozícia, horná pozícia, šírka a výška. Môžete ich upraviť, ako chcete, úpravou prvých dvoch zmeníte umiestnenie políčka na obrazovke a posledných dvoch zmeníte veľkosť poľa. Tieto rozmery som použil, pretože boli dobrým odhadom na výrobu škatule rovnakej veľkosti ako bunka.
A tu je kód použitý na dynamické vykreslenie zelených políčok na obrázku vyššie:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Vedľajšie dynamické boxy ()Dim x As Double„To robí horizontálne boxyPre x = 0 až 240, krok 48„odkaz na 4 čísla vľavo, hore, šírku, výškuActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12,75). VyberteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueDalej x„To robí zvislé boxyPre 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 = msoTrueDalej xKoniec pod |