powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA EXCEL Как узнать, пересикаются ли объекты
5 сообщений из 5, страница 1 из 1
VBA EXCEL Как узнать, пересикаются ли объекты
    #34552356
Stex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как узнаьб, пересикаются ли объекты ??? Заранее спасибо !!!
...
Рейтинг: 0 / 0
VBA EXCEL Как узнать, пересикаются ли объекты
    #34552514
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StexКак узнаьб, пересикаются ли объекты ??? Заранее спасибо !!!

Чериз их свойства Top, Left, Width и Height. Нужно ришыьб гиомитрические уравнения из курса средний школы.
...
Рейтинг: 0 / 0
VBA EXCEL Как узнать, пересикаются ли объекты
    #34552544
Stex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C Top, Left, Width и Height у меня проблем нет. Просто если их использовать получается достаточно здоровый код. Может есто лучшее решение ???
...
Рейтинг: 0 / 0
VBA EXCEL Как узнать, пересикаются ли объекты
    #34552584
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StexC Top, Left, Width и Height у меня проблем нет. Просто если их использовать получается достаточно здоровый код. Может есто лучшее решение ???
Может и есто. Но если objects или shapes все прямоугольные, то для них будет работать одна крохотная функция, которую легко написать. Функция будет возвращать булевое значение, и все.
...
Рейтинг: 0 / 0
VBA EXCEL Как узнать, пересикаются ли объекты
    #34552675
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта функция должна работать для прямоугольных Objects:

Код: plaintext
MsgBox IsOneOverAnother(CommandButton1, CommandButton2)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Function IsOneOverAnother(ByRef ioobjOne As Object, ByRef ioobjAnother As Object) As Boolean
    Static intCount As Integer
    
    intCount = intCount +  1 
    
    If intCount >  2  Then
       intCount =  0 
       Exit Function
    End If
        
    IsOneOverAnother = (ioobjOne.Left >= ioobjAnother.Left And ioobjOne.Left <= ioobjAnother.Left + ioobjAnother.Width) And _
     (ioobjOne.Top >= ioobjAnother.Top And ioobjOne.Top <= ioobjAnother.Top + ioobjAnother.Height)
    
    IsOneOverAnother = IsOneOverAnother Or IsOneOverAnother(ioobjAnother, ioobjOne)
    
End Function
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA EXCEL Как узнать, пересикаются ли объекты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]