VBA piešimo dėžutės su kodu
Yra daug priežasčių, dėl kurių galbūt norėsite programiškai piešti dėžutes, ar automatinė gantų diagrama būtų šauni? Štai vienas būdas tai padaryti.
Tai yra pagrindinis langelio piešimo kodas:
12345678910 | ActiveSheet.Shapes.AddShape _(„msoShapeFlowchartProcess“, 0, 0, 48, 12.75). PasirinkiteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
Tai tikrai nėra taip baisu, reikia atkreipti dėmesį tik į du pastebimus dalykus; Schemos spalva akivaizdžiai yra spalva ir 0,0,48,12.75.
Taigi, kas yra 0,0,48,12,75? Tiesiog kairė padėtis, viršutinė padėtis, plotis ir aukštis. Galite juos koreguoti taip, kaip norite, pakoreguodami pirmuosius du, kad pakeistumėte langelių padėtį ekrane, o antrųjų dviejų - norėdami pakeisti dėžutės dydį. Aš naudojau šiuos matmenis, nes jie buvo geras spėjimas padaryti dėžutę tokio paties dydžio kaip ląstelė.
Čia yra kodas, naudojamas dinamiškai piešti žalias dėžutes aukščiau esančiame paveikslėlyje:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Sub DynamicBoxes ()Dim x As Double„Tai sudaro horizontalias dėžesX = 0 iki 240 48 žingsnis“nuoroda į 4 skaičius kairėje, viršuje, plotis, aukštisActiveSheet.Shapes.AddShape _[msoShapeFlowchartProcess, x, 0, 48, 12.75]. PasirinkiteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueKitas x„Dėl to susidaro vertikalios dėžutėsX = 0 iki 127,5 12.75 žingsnisActiveSheet.Shapes.AddShape _[msoShapeFlowchartProcess, 0, x, 48, 12.75]. PasirinkiteSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueKitas xPabaiga Sub |