Akademia VBA

czyli jak uzyskać władzę nad światem … danych

Usuwanie wybranych obiektów z kolekcji OLEObjects

Kategorie: Excel VBA — Dariusz Kolasa o 14:58, 10 Cze 2013

Jak się okazuje Excel nadaje się do wszystkiego :) Ostatnio troszeczkę pomogłem przy aplikacji, gdzie Excel występował w roli kontenera na różne pliki (może OneNote byłby tu lepszy?). W każdym razie był problem z usuwaniem grupy plików tego samego typu bez względu na wersję (dokładnie chodziło o pliki Worda). Sprawa okazała się dość prosta, po znalezieniu właściwości progID, zwracającej ślicznego stringa z nazwą i wersją aplikacji, np:
PowerPoint.Show.8
Word.Document.8
Word.Document.12
Excel.Sheet.8

W związku z tym wystarczyło użyć For Each .. Next dla kolekcji OLEObjects i użyć w warunku usuwania prostej funkcji tekstowej left:

Private Sub pUsun_Click()
    Dim OLEOb As Excel.OLEObject
 
    For Each OLEOb In ActiveSheet.OLEObjects
        If Left(OLEOb.progID, 4) = "Word" Then OLEOb.Delete
    Next
 
    Set OLEOb = Nothing
End Sub

Komentarze (0) »

Brak komentarzy

RSS komentarzy do wpisu. Adres trackback

Zostaw komentarz

Dozwolone znaczniki XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>