VBA Trækasser med kode
Der er mange grunde til, at du måske vil være i stand til at tegne kasser programmatisk, et automatiseret gantt -diagram ville være fedt? Her er en måde at gøre det på.
Dette er den grundlæggende kode for at tegne en boks:
12345678910 | ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12,75) .VælgSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
Det er virkelig ikke så skræmmende, der er kun to bemærkelsesværdige ting at se på; Schemecolor er naturligvis farven og 0,0,48,12,75.
Så hvad er 0,0,48,12,75? Simpelthen venstre position, top position, bredde og højde. Du kan justere disse, som du vil, justere de to første for at ændre boksernes position på skærmen og de to sidstnævnte for at ændre boksens størrelse. Jeg brugte disse dimensioner, fordi de var et godt gæt til at lave en kasse i samme størrelse som en celle.
Og her er koden, der bruges til dynamisk at tegne de grønne felter i billedet ovenfor:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Sub DynamicBoxes ()Dim x som dobbelt'Dette gør vandrette kasserFor x = 0 Til 240 Trin 48'reference til de 4 tal tilbage, top, bredde, højdeActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12,75) .VælgSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueNæste x'Dette gør lodrette kasserFor x = 0 Til 127,5 Trin 12.75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12.75) .VælgSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueNæste xAfslut Sub |