Desenați programat cutii cu cod - Exemple de cod VBA

Cutii VBA Draw cu cod

Există multe motive pentru care ați putea dori să puteți desena programatic cutii, un grafic automat de gantt ar fi grozav? Iată o modalitate de a face acest lucru.

Acesta este codul de bază pentru a desena o casetă:

12345678910 ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12.75). SelectațiSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue

Nu este chiar atât de descurajant, există doar două lucruri notabile de privit; Schemecolor este evident culoarea și 0,0,48,12,75.

Deci, ce este 0,0,48,12,75? Pur și simplu poziția din stânga, poziția de sus, lățimea și înălțimea. Puteți să le reglați oricum doriți, ajustând primele două pentru a schimba poziția casetelor de pe ecran, iar ultimele două pentru a modifica dimensiunea casetei. Am folosit aceste dimensiuni pentru că au fost o presupunere bună la realizarea unei cutii de aceeași dimensiune ca o celulă.

Și iată codul folosit pentru a desena dinamic casetele verzi din imaginea de mai sus:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 Sub DynamicBoxes ()Dim x As Double„Aceasta face cutii orizontalePentru x = 0 - 240 Pasul 48'referință la cele 4 numere stânga, sus, lățime, înălțimeActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12.75). SelectațiSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueUrmătorul x„Aceasta face cutii verticalePentru x = 0 - 127,5 Pasul 12.75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12.75). SelectațiSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueUrmătorul xSfârșitul Sub
wave wave wave wave wave