Stergere imagini
Caută obiectele de tip imagine dintr-un fișier Excel și le șterge pe cele al căror nume începe cu Picture. Cele care nu trebuie șterse se pot redenumi.
La selectarea unei imagini, în Name Box apare numele pe care Excel îl atribuie automat unei imagini inserate în fișier.
Numele poate fi modificat în caseta Name Box, cu clic în casetă, tastarea noului nume și confirmare cu tasta Enter.
În imaginea de mai jos, numele Picture 25 a fost înlocuit cu numele Nu se sterge.
Mai jos se află codul care poate fi copiat în VBA (în fișierul Excel, se apasă Alt+F11 pentru a deschide fereastra VBA, apoi F7 pentru a deschide fereastra Code și într-o zonă goală - Ctrl+V sau Paste pentru a adăuga codul copiat).
Sub Clearpictures()
'Sursa: http://www.mrexcel.com/forum/excel-questions/388185-delete-all-pictures-workbook.html
' sterge DOAR imaginile a caror denumire incepe cu Picture
' nu si formele inserate (Shapes) carora Excel le da alte denumiri: Rectangle, Oval etc.
' si nici obiectele sau grupurile de obiecte de tip ClipArt, care au alte nume: de ex. Music, Group...
' codul poate fi modificat pentru a se sterge doar elementele grafice care au o anumita denumire
'denumirea unui element grafic selectat se poate vedea in caseta "Name Box" (stanga-sus)
'
Dim WS As Worksheet 'declarare variabila pentru foaia de lucru
'fata de codul original, am adaugat cele 3 declaratii de mai jos:
Dim DrObj As Object
Dim i As Integer
Dim Counter As Integer
Application.ScreenUpdating = False 'se foloseste pentru a creste viteza de lucru a macrocomenzii
For Each WS In Worksheets 'pentru fiecare foaie de lucru din document
WS.Activate 'activare foaie de lucru
Set DrObj = ActiveSheet.DrawingObjects 'definire numar obiecte - elemente grafice
For i = DrObj.Count To 1 Step -1 'analizeaza fiecare obiect grafic din foaia de lucru
'mai jos, codul poate fi modificat; instructiunea if poate avea alt continut
If Left(DrObj.Item(i).Name, 7) = "Picture" Then 'daca denumirea acestuia incepe cu Picture
DrObj.Item(i).Select 'se selecteaza obiectul
DrObj.Item(i).Delete 'si se sterge
Counter = Counter + 1 'numara obiectele sterse
End If
Next 'urmatorul obiect element grafic
Next WS 'sare la urmatoarea foaie de lucru
MsgBox Counter 'afiseaza numarul de elemente grafice sterse care incep cu Picture
End Sub