|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Excel Красивый (на мой вгляд) графический прогресс-бар. Не получается его программно удалять по завершении процесса. Макрорекордер не помог. Подскажите как его программно удалять. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 13:59 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Private Sub CommandButton1_Click() ' рисуется прямоугольникActiveSheet.Shapes.AddShape(msoShapeRectangle, 96.75, 90#, 408#, 19.5).Select Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle = msoLineSolid Selection.ShapeRange.Line.Style = msoLineSingle Selection.ShapeRange.Line.Transparency = 0# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.ForeColor.SchemeColor = 64 Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255) ' тестовый цикл For x = 100 To 500 Step 3 Shapes.AddLine(x, 100, x + 2, 100).Select Selection.ShapeRange.Line.ForeColor.SchemeColor = 12 Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Weight = 12# Selection.ShapeRange.Line.Visible = msoTrue Selection.ShapeRange.Line.Style = msoLineSingle Cells(1, 1).Activate Next x End Sub ' Как все это стереть? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 14:23 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
talgat Извини, пожалуйста, я немножко переписал твой макрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Для удаления графических объектов использовал следующий код (кстати, кнопку он тоже удаляет) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
У кода есть недостаток: за один заход он не убирает все графические объекты. Надеюсь, коллеги не сочтут за труд и в случае необходимости поправят. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 15:13 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
To SirFisher: Кнопку удаляет. А линии только частично. И прямоугольник остается. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 15:21 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Конструкция i = i + 1 To n совсем не понятна. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 15:24 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
talgatTo SirFisher: Кнопку удаляет. А линии только частично. И прямоугольник остается. Выше написал, что макрос удаляет кнопку и еще сырой. Для полного удаления графических объектов приходится несколько раз вызывать Макрос8. talgatКонструкция i = i + 1 To n совсем не понятна. Пошаговое выделение объекта, i после каждого цикла приращивается на 1. Моё предложение не панацея и требует доработки, чем сейчас и занят. Также буду рад, если Вы подскажете полноценное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 15:28 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
On Error Resume Next n = ActiveSheet.Shapes.Count MsgBox (n) For i = 500 To 520 ActiveSheet.Shapes(i).Select Selection.Delete Next i Как ни странно n принимает разные значения. От чего зависит значение я не пойму. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 15:43 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
talgatOn Error Resume Next n = ActiveSheet.Shapes.Count MsgBox (n) For i = 500 To 520 ActiveSheet.Shapes(i).Select Selection.Delete Next i Как ни странно n принимает разные значения. От чего зависит значение я не пойму. Такую штуковину уже сделал и тоже пока не могу ума дать, почему за 1 проход не удаляет все графические объекты. Кроме того, можно еще упростить код: Код: plaintext 1.
Код: plaintext
P.S. Кстати, Вы правы, инструкция i=i+1 не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 15:49 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
talgat Всё работает. Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:06 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
SirFisher talgat Всё работает. Код: plaintext 1. 2. 3. 4. 5. 6.
Спасибо! Как нашли решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:10 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Плохо что кнопка удаляется. Она нужна для запуска процесса. Но это уже другой вопрос. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:14 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
SirFisher Так вы удалите нужные кнопки, только для линий: Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:14 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
talgat Немножко побродил в хелпе VBA по семейству Shape. Прошу меня извинить, у нас уж за полночь. До свидания. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:15 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
SvIva SirFisher Так вы удалите нужные кнопки, только для линий: Код: plaintext 1. 2. 3. 4. 5. 6.
If InStr(1, ActiveSheet.Shapes(i).Name, "Line") > 0 Then Дает ошибку. Хотя до ошибки линии удаляются, а прямоугольник нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:23 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Естественно, дает ошибку, здесь показан принцип и нет проверки на конец коллекции Shape. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:40 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
SvIvaЕстественно, дает ошибку, здесь показан принцип и нет проверки на конец коллекции Shape. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
СпасибА ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 16:44 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Получилось прикольно. При переходе с листа на лист срабатывает прогресс-бар. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2006, 17:08 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Так будет красивее и быстрее работать (утро вечера мудреннее !). Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2006, 08:48 |
|
Как удалить VBA графические объекты?
|
|||
---|---|---|---|
#18+
Все это ерунда, а вот действительно важные вопросы здесь как раз и не затрагиваются... Раз уж это прогрессбар, то естественно он должен доводить до пользователя состояние выполнения процесса по времени, но вот как раз время - то исполнения самого прогресс-бара непостоянно. Попробуйте запустите его раз 10-15 подряд (даже на очень неслабой машине с i5) - картина становится оооочеень забавной. И даже элементарный процесс, который отображается (10м или 15м) прогрессбаром затянется на часы уже по вине самого этого прогрессбара. Далее, почему уже созданные объекты так долго удаляются (и программно и вручную)? Кто знает, в чем тут подвох? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2012, 09:23 |
|
|
start [/forum/topic.php?fid=61&msg=34074256&tid=2175206]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 143ms |
0 / 0 |