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.

Schimbare nume imagine în Excel

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