VBA код для Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
agaysene
Сообщения: 2
Зарегистрирован: 31 июл 2009, 05:18

Помогите написать код по выделению всех объектов TextBox, для последующего их удаления из книги.
Типа ActiveSheet.Shapes.TextBox.Select , можно ли в VBA использовать синтаксис шаблонов : по аналогии с tyy???.*; *.*; и т.д.
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Удалить все объекты "TextBox" с активного листа можно так:

Код: Выделить всё

Dim Sh As Shape
For Each Sh In ActiveSheet.Shapes
    If Sh.Name Like "TextBox*" Then Sh.Delete
Next
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

SAS888, мне кажется это не совсем верно. Так как шейп может быть и переименован. Я бы использовал для перечисления TextBox код

Код: Выделить всё

[color=Navy]Public Sub[/color] TextBoxAsActiveXEnumerator()
    [color=Navy]Dim[/color] o [color=Navy]As OLEObject[/color]
    [color=Navy]For Each[/color] o [color=Navy]In ActiveSheet[/color].[color=Navy]OLEObjects[/color]
        [color=Navy]If Right$[/color](o.[color=Navy]progID[/color], 10) = [color=DarkGreen][B]".TextBox.1"[/B][/color] [color=Navy]Then[/color]
            o.[color=Navy]Delete[/color]
        [color=Navy]End If
     Next[/color] o
[color=Navy]End Sub[/color]
Андрей Энтелис,
aentelis.livejournal.com
agaysene
Сообщения: 2
Зарегистрирован: 31 июл 2009, 05:18

Я проверил работу по второму коду на этом месте : If Right$(o.progID, 10) = *".TextBox.1"* Then программа дает ошибку
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

Aent, согласен с Вами.
agaysene, а зачем Вы звездочки поставили?
Ответить