Aggiunta e formattazione di una forma tramite Macro (Microsoft Excel)
Ron usa spesso le forme (un ovale, in realtà) per evidenziare le cose in un foglio di lavoro. Aggiunge e ridimensiona la forma, quindi deve cambiare il colore della forma in rosso ed eliminare qualsiasi colore di riempimento in modo che non oscuri ciò che sta effettivamente cercando di evidenziare. Esegue questi passaggi abbastanza spesso e non ha dubbi che questo potrebbe in qualche modo essere accelerato con una macro, ma non è sicuro di come procedere.
Prima di esaminare le soluzioni basate su macro, potresti prendere in considerazione alcune che non richiedono macro. Ad esempio, se crei il tuo ovale (formattato come desiderato) e fai clic con il pulsante destro del mouse su di esso, puoi impostarlo come forma predefinita. Ciò può accelerare l’aggiunta della forma alla cartella di lavoro in futuro.
Se hai più forme, ognuna di dimensioni e colore diversi, potresti semplicemente copiare quelle forme in una cartella di lavoro diversa. Quella cartella di lavoro potrebbe essere un “contenitore” per quelle forme, in modo che tu possa copiarle di nuovo su altre cartelle di lavoro, se necessario. Questo è un ottimo modo per creare la tua galleria di forme standard che possono essere utilizzate per anni.
Se decidi che una macro è il modo migliore per procedere, è relativamente facile usarne una per aggiungere l’ovale. Eccone uno molto semplice:
Sub Custom_Oval1() ActiveSheet.Shapes.AddShape(msoShapeOval, 150, 150, _ 120, 60).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .DashStyle = msoLineSolid .Weight = 3 .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With End Sub
Questo inserisce un ovale standard, con colore, riempimento e trasparenza desiderati, in un’unica posizione nel foglio di lavoro. Al termine, la forma è ancora selezionata e puoi quindi trascinare l’ovale dove desideri e apportare le modifiche alle dimensioni che potrebbero essere necessarie.
Se preferisci avere l’ovale più vicino a dove vuoi, puoi usare una variazione che guarda la cella attiva nel foglio di lavoro e posiziona l’ovale attorno a quella cella, dimensionato all’altezza e alla larghezza della cella:
Sub Custom_Oval2() Dim lLeft As Long Dim lTop As Long Dim lWidth As Long Dim lHeight As Long lLeft = ActiveCell.Left - 5 lWidth = ActiveCell.Width + 5 lTop = ActiveCell.Top lHeight = ActiveCell.Height + 5 ActiveSheet.Shapes.AddShape(msoShapeOval, lLeft, _ lTop, lWidth, lHeight).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .DashStyle = msoLineSolid .Weight = 3 .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 End With End Sub
Notare che questa variazione della macro determina la posizione della forma in base alla posizione dell’oggetto ActiveCell. È possibile, se lo si desidera, modificare tutte le occorrenze di ActiveCell in Selezione, che consentirebbe alle dimensioni dell’ovale di adattarsi per circondare la selezione piuttosto che semplicemente la cella attiva. Nota, inoltre, che i valori di sinistra, larghezza e altezza vengono regolati leggermente per dare all’ovale un adattamento migliore. Potresti voler giocare con diversi valori di regolazione per ottenere l’aspetto che desideri.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (4631) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.