VBA Draw Box con codice
Ci sono molte ragioni per cui potresti voler essere in grado di disegnare scatole in modo programmatico, un diagramma di Gantt automatizzato sarebbe bello? Ecco un modo per farlo.
Questo è il codice base per disegnare una scatola:
12345678910 | ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, 0, 48, 12.75).SelezionareSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrue |
Non è davvero così scoraggiante, ci sono solo due cose importanti da guardare; Schemecolor è ovviamente il colore e lo 0,0,48,12,75.
Quindi qual è lo 0,0,48,12,75? Semplicemente la posizione sinistra, la posizione superiore, la larghezza e l'altezza. Puoi regolarli come preferisci, regolando i primi due per modificare la posizione delle caselle sullo schermo e le ultime due per modificare le dimensioni della casella. Ho usato queste dimensioni perché erano una buona ipotesi per creare una scatola delle stesse dimensioni di una cella.
Ed ecco il codice utilizzato per disegnare dinamicamente le caselle verdi nell'immagine sopra:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | Sub DynamicBox ()Dim x come doppio'Questo rende le scatole orizzontaliPer x = da 0 a 240 Passo 48'riferimento ai 4 numeri a sinistra, alto, larghezza, altezzaActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, x, 0, 48, 12.75).SelezionareSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueAvanti x'Questo crea scatole verticaliPer x = da 0 a 127,5 Passo 12,75ActiveSheet.Shapes.AddShape _(msoShapeFlowchartProcess, 0, x, 48, 12.75).SelezionareSelection.ShapeRange.Fill.ForeColor.SchemeColor = 11Selection.ShapeRange.Fill.SolidSelection.ShapeRange.Fill.Visible = msoTrueAvanti xFine sottotitolo |