Disegna a livello di codice riquadri con codice - Esempi di codice VBA

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

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave