Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 22:41   #1
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию Удаление линий

Здравствуйте.
Нарисовал 2 линии в рабочем листе при помощи макроса, как теперь при помощи другого макроса удалить их обе? как то не могу додуматься как использовать функцию Delete.
Вот как-то так получается пока
Код:
Private Sub CommandButton1_Click()
ActiveSheet.Shapes.AddLine(1, 1, 50, 50).Select
Selection.ShapeRange.Line.Weight = 3
ActiveSheet.Shapes.AddLine(1, 50, 50, 1).Select
Selection.ShapeRange.Line.Weight = 3
End Sub

Private Sub CommandButton2_Click()
Shapes.Delete
End Sub
Заранее всем спасибо.
drNabla вне форума Ответить с цитированием
Старый 16.01.2011, 22:47   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Так примерно:
Код:
ActiveSheet.Shapes(1).Delete
motorway вне форума Ответить с цитированием
Старый 16.01.2011, 22:53   #3
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

спасибо, хотя я так уже пробовал, а теперь открыл новую книгу, заново создал обе кнопки и заработало... странно, но всё равно спасибо. теперь точно знаю что это работает.
drNabla вне форума Ответить с цитированием
Старый 17.01.2011, 01:58   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Я бы делал так,а то можно и кнопки удалить, нажимать потом нечего будет

Код:
 Sub Shape_Add()
Dim shap As Shape
Set shap = ActiveSheet.Shapes.AddLine(1, 1, 50, 50)
shap.DrawingObject.ShapeRange.Line.Weight = 3
shap.Name = "F1 F8"
Set shap = ActiveSheet.Shapes.AddLine(1, 50, 50, 1)
shap.DrawingObject.ShapeRange.Line.Weight = 3
shap.Name = "F1 F9"

End Sub

 Sub Kill_Shape()
Dim shap As Shape
For Each shap In ActiveSheet.Shapes
If shap.Name Like "F1 F8" Then
shap.Delete
End If
Next shap
End Sub

 
 Sub Kill_Shape_Alles()
Dim shap As Shape
For Each shap In ActiveSheet.Shapes
If shap.Type = msoLine Then
shap.Delete
End If
Next shap
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пересечение линий PastoriXx Общие вопросы по Java, Java SE, Kotlin 5 22.12.2010 16:54
Удаление невидимых линий(Z-буфер) Ruschel Мультимедиа в Delphi 0 10.12.2010 16:39
Отрисовка линий Rave MSD Общие вопросы Delphi 2 16.06.2010 14:01
C. Найти пересечения линий. Sekmegalife Помощь студентам 1 19.10.2009 08:34