Страница 1 из 1

VBA код для Excel

Добавлено: 31 июл 2009, 07:26
agaysene
Помогите написать код по выделению всех объектов TextBox, для последующего их удаления из книги.
Типа ActiveSheet.Shapes.TextBox.Select , можно ли в VBA использовать синтаксис шаблонов : по аналогии с tyy???.*; *.*; и т.д.

Re: VBA код для Excel

Добавлено: 31 июл 2009, 07:47
SAS888
Удалить все объекты "TextBox" с активного листа можно так:

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

Dim Sh As Shape
For Each Sh In ActiveSheet.Shapes
    If Sh.Name Like "TextBox*" Then Sh.Delete
Next

Re: VBA код для Excel

Добавлено: 31 июл 2009, 13:33
Aent
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]

Re: VBA код для Excel

Добавлено: 03 авг 2009, 04:53
agaysene
Я проверил работу по второму коду на этом месте : If Right$(o.progID, 10) = *".TextBox.1"* Then программа дает ошибку

Re: VBA код для Excel

Добавлено: 03 авг 2009, 09:32
SAS888
Aent, согласен с Вами.
agaysene, а зачем Вы звездочки поставили?