Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Распознавание прямоугольника - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Распознавание прямоугольника (Макросы/Sub)
Распознавание прямоугольника
SergVrn Дата: Вторник, 28.11.2017, 14:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте, братья-программисты.
Помогите решить задачу !

В файле эксель, в рабочей области - находятся ячейки, заполненные единицами.
Но эти единицы - расставлены не наобум.
Если присмотреться, то заметно - что они образуют что-то навроде Прямоугольника с рваными краями.

Как макросом - нарисовать по приблизительным очертаниям этой "фигуры", образованной единицами - настоящую фигуру Прямоугольник ?

(Я имею ввиду - как макросом заставить эксель определить - что перед ним нечто, напоминающее Прямоугольник, с примерно заметными шириной и высотой.)
К сообщению приложен файл: 3456.xls(32Kb)
 
Ответить
СообщениеЗдравствуйте, братья-программисты.
Помогите решить задачу !

В файле эксель, в рабочей области - находятся ячейки, заполненные единицами.
Но эти единицы - расставлены не наобум.
Если присмотреться, то заметно - что они образуют что-то навроде Прямоугольника с рваными краями.

Как макросом - нарисовать по приблизительным очертаниям этой "фигуры", образованной единицами - настоящую фигуру Прямоугольник ?

(Я имею ввиду - как макросом заставить эксель определить - что перед ним нечто, напоминающее Прямоугольник, с примерно заметными шириной и высотой.)

Автор - SergVrn
Дата добавления - 28.11.2017 в 14:56
al-Ex Дата: Вторник, 28.11.2017, 15:26 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Тут почитай


Сообщение отредактировал al-Ex - Вторник, 28.11.2017, 15:31
 
Ответить
СообщениеТут почитай

Автор - al-Ex
Дата добавления - 28.11.2017 в 15:26
SergVrn Дата: Вторник, 28.11.2017, 16:37 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
al-Ex, это что-то совсем не то.

Этот макрос - не определяет форму объекта.
Он просто отмечает - верхнюю заполненную строку, нижнюю заполненную строку листа и то же самое со столбцами.

Если я поставлю единицу - в ячейку А1 (то есть за пределами основной формы) - то этот макрос протянет угол прямоугольника - до ячейки А1.


Сообщение отредактировал SergVrn - Вторник, 28.11.2017, 16:51
 
Ответить
Сообщениеal-Ex, это что-то совсем не то.

Этот макрос - не определяет форму объекта.
Он просто отмечает - верхнюю заполненную строку, нижнюю заполненную строку листа и то же самое со столбцами.

Если я поставлю единицу - в ячейку А1 (то есть за пределами основной формы) - то этот макрос протянет угол прямоугольника - до ячейки А1.

Автор - SergVrn
Дата добавления - 28.11.2017 в 16:37
al-Ex Дата: Вторник, 28.11.2017, 19:09 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
Я согласен, что тот пример который я привёл, не является полным решением Вашей задачи.
Целью моего поста было просто указать коллеге одно из направлений в котором возможно следует копнуть.


Сообщение отредактировал al-Ex - Вторник, 28.11.2017, 19:11
 
Ответить
СообщениеЯ согласен, что тот пример который я привёл, не является полным решением Вашей задачи.
Целью моего поста было просто указать коллеге одно из направлений в котором возможно следует копнуть.

Автор - al-Ex
Дата добавления - 28.11.2017 в 19:09
SergVrn Дата: Вторник, 28.11.2017, 21:04 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
al-Ex, ну вот к примеру на листе - несколько точек, кроме фигуры многоугольника.
Здесь сама идея вашего макроса - совершенно неприменима.
К сообщению приложен файл: 46634.xls(42Kb)
 
Ответить
Сообщениеal-Ex, ну вот к примеру на листе - несколько точек, кроме фигуры многоугольника.
Здесь сама идея вашего макроса - совершенно неприменима.

Автор - SergVrn
Дата добавления - 28.11.2017 в 21:04
buchlotnik Дата: Вторник, 28.11.2017, 21:44 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3437
Репутация: 922 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
Цитата
сама идея вашего макроса - совершенно неприменима
В таком случае сам пример из первого поста грубо противоречит Правилам форума

Вы всерьёз хотите, чтобы вам на VBA написали интеллектуальное распознавание образов?! Тогда пожалуйста алгоритм в студию - что в вашем понимании
Цитата
Если присмотреться, то заметно
Не претензии, а алгоритм (для Excel-я, ага - может нобелевку сразу получите, хотя нет - по математике не дают)


"заступлюсь за Юрия" - публичный плевок в душу!

Сообщение отредактировал buchlotnik - Вторник, 28.11.2017, 21:46
 
Ответить
Сообщение
Цитата
сама идея вашего макроса - совершенно неприменима
В таком случае сам пример из первого поста грубо противоречит Правилам форума

Вы всерьёз хотите, чтобы вам на VBA написали интеллектуальное распознавание образов?! Тогда пожалуйста алгоритм в студию - что в вашем понимании
Цитата
Если присмотреться, то заметно
Не претензии, а алгоритм (для Excel-я, ага - может нобелевку сразу получите, хотя нет - по математике не дают)

Автор - buchlotnik
Дата добавления - 28.11.2017 в 21:44
doober Дата: Вторник, 28.11.2017, 21:51 | Сообщение № 7
Группа: Друзья
Ранг: Обитатель
Сообщений: 416
Репутация: 215 ±
Замечаний: 0% ±

Excel 2007
как макросом заставить эксель определить

Заставлять не надо, надо научить его по разработанному алгоритму.
Например такой.
Считаем сколько по горизонтали в строке 1.
Выбираем 2 с максимальными значения.
Аналогично для вертикали.Строим четыре луча.В итоге имеем прямоугольник.


 
Ответить
Сообщение
как макросом заставить эксель определить

Заставлять не надо, надо научить его по разработанному алгоритму.
Например такой.
Считаем сколько по горизонтали в строке 1.
Выбираем 2 с максимальными значения.
Аналогично для вертикали.Строим четыре луча.В итоге имеем прямоугольник.

Автор - doober
Дата добавления - 28.11.2017 в 21:51
buchlotnik Дата: Вторник, 28.11.2017, 21:59 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3437
Репутация: 922 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
doober, ну так ведь можно и до конца листа единичек по строке или столбцу наставить (через 3 - 7 ячеек) и заявить - "не работает"; тогда уж надо искать некую "максимально протяжённую группу с расстоянием между заполненными ячейками не более 1 или 2", только что-то подсказывает, что потом придётся ещё искать овал, треугольник и т.д. - см. список автофигур :)


"заступлюсь за Юрия" - публичный плевок в душу!

Сообщение отредактировал buchlotnik - Вторник, 28.11.2017, 22:06
 
Ответить
Сообщениеdoober, ну так ведь можно и до конца листа единичек по строке или столбцу наставить (через 3 - 7 ячеек) и заявить - "не работает"; тогда уж надо искать некую "максимально протяжённую группу с расстоянием между заполненными ячейками не более 1 или 2", только что-то подсказывает, что потом придётся ещё искать овал, треугольник и т.д. - см. список автофигур :)

Автор - buchlotnik
Дата добавления - 28.11.2017 в 21:59
al-Ex Дата: Вторник, 28.11.2017, 22:13 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 59 ±
Замечаний: 0% ±

Excel 2010
чтобы вам на VBA написали интеллектуальное распознавание образов
то-то и оно, распознавание образов на VBA, это экстрим какой-то, просто для разминки извилин разве-что.


Сообщение отредактировал al-Ex - Вторник, 28.11.2017, 22:18
 
Ответить
Сообщение
чтобы вам на VBA написали интеллектуальное распознавание образов
то-то и оно, распознавание образов на VBA, это экстрим какой-то, просто для разминки извилин разве-что.

Автор - al-Ex
Дата добавления - 28.11.2017 в 22:13
buchlotnik Дата: Вторник, 28.11.2017, 22:26 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3437
Репутация: 922 ±
Замечаний: 0% ±

2010, 2013, 2016 RUS / ENG
[offtop]
Цитата
для разминки извилин разве-что
тогда какой практический смысл в вопросе? Просто интересно - какова у ТС-а конечная цель. Хотя... по списку предыдущих тем - Excel через VBA пытаются превратить в интеллектуального графического монстра yes [/offtop]


"заступлюсь за Юрия" - публичный плевок в душу!

Сообщение отредактировал buchlotnik - Вторник, 28.11.2017, 22:30
 
Ответить
Сообщение[offtop]
Цитата
для разминки извилин разве-что
тогда какой практический смысл в вопросе? Просто интересно - какова у ТС-а конечная цель. Хотя... по списку предыдущих тем - Excel через VBA пытаются превратить в интеллектуального графического монстра yes [/offtop]

Автор - buchlotnik
Дата добавления - 28.11.2017 в 22:26
SergVrn Дата: Среда, 29.11.2017, 17:08 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
doober, ну.... вроде в этой идее что-то есть.
Надо над ней подумать...
 
Ответить
Сообщениеdoober, ну.... вроде в этой идее что-то есть.
Надо над ней подумать...

Автор - SergVrn
Дата добавления - 29.11.2017 в 17:08
bmv98rus Дата: Среда, 29.11.2017, 20:39 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 686
Репутация: 114 ±
Замечаний: 0% ±

Excel 2013/2016
Excel через VBA пытаются превратить в интеллектуального графического монстра

в самую точку

SergVrn,
Ищите алгоритмы не привязанные к эксель, ведь по сути в Вашем случае ячейка это пиксель. А вот как адаптировать то к этому- можно наверно и сюда.
https://habrahabr.ru/post/208090/
 
Ответить
Сообщение
Excel через VBA пытаются превратить в интеллектуального графического монстра

в самую точку

SergVrn,
Ищите алгоритмы не привязанные к эксель, ведь по сути в Вашем случае ячейка это пиксель. А вот как адаптировать то к этому- можно наверно и сюда.
https://habrahabr.ru/post/208090/

Автор - bmv98rus
Дата добавления - 29.11.2017 в 20:39
SergVrn Дата: Среда, 29.11.2017, 21:42 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 39
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
bmv98rus, хм....
Код Фримана значит....
Ясно, спасибо за наводку.
 
Ответить
Сообщениеbmv98rus, хм....
Код Фримана значит....
Ясно, спасибо за наводку.

Автор - SergVrn
Дата добавления - 29.11.2017 в 21:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Распознавание прямоугольника (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!