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 |