Выкладываю код для позиционирования формы пока есть свободная минута :). Код основан на стандартных возможностях экселя делать это. Короткое описание:
mod_Functions - функции для перевода пикселей в точки и точек в пиксели mod_GetDesktopMonitor - получение DPI системы и разрешения монитора mod_GetRectForExcel2007Plus - получение прямоугольника координат ячейки в точках mod_SetFormPosition - модуль позиционирования. Фиксит выход за пределы экрана, обрабатывает настройки и размещает форму mod_Test - тестовый код
В данном тестовом файла форма вызывается двойным кликом по ячейке.
Можно задавать предпочтительную позицию формы при вызове процедуры позиционирования. Примеры: [vba]
Если кто-то знает, как получить рабочую область экрана без WinAPI, пишите )
Всем привет
Выкладываю код для позиционирования формы пока есть свободная минута :). Код основан на стандартных возможностях экселя делать это. Короткое описание:
mod_Functions - функции для перевода пикселей в точки и точек в пиксели mod_GetDesktopMonitor - получение DPI системы и разрешения монитора mod_GetRectForExcel2007Plus - получение прямоугольника координат ячейки в точках mod_SetFormPosition - модуль позиционирования. Фиксит выход за пределы экрана, обрабатывает настройки и размещает форму mod_Test - тестовый код
В данном тестовом файла форма вызывается двойным кликом по ячейке.
Можно задавать предпочтительную позицию формы при вызове процедуры позиционирования. Примеры: [vba]
Разрешите выразить глубокое уважение Давно слежу за этой очень не простой темой Первый раз удивился, когда узнал, как задача решается с примененем невидимого объекта ChartObject - неожиданно, изящно ! Второй раз, когда понял, что начиная с 2007 этот вариант перестал работать Третий раз - когда познакомился с идеями, высказанными здесь и на Планете Так это еще не все... Саш, я поклонник твоего таланта!
Разрешите выразить глубокое уважение Давно слежу за этой очень не простой темой Первый раз удивился, когда узнал, как задача решается с примененем невидимого объекта ChartObject - неожиданно, изящно ! Второй раз, когда понял, что начиная с 2007 этот вариант перестал работать Третий раз - когда познакомился с идеями, высказанными здесь и на Планете Так это еще не все... Саш, я поклонник твоего таланта!v__step
Задача известна своей сложностью Буллен, Бови, Грин в своих книгах очень серьезно обсуждают ее, предлагают решение (оно давно перестало работать ). Твои решения на сегодняшний день - единственные - это мотив моего искреннего уважения
Задача известна своей сложностью Буллен, Бови, Грин в своих книгах очень серьезно обсуждают ее, предлагают решение (оно давно перестало работать ). Твои решения на сегодняшний день - единственные - это мотив моего искреннего уваженияv__step
точно не использует API и возвращается абсолютная ссылка на левую верхнюю видимую в окне ячейку с учетом текущего состояния прокрутки как текст с префиксом "$A:". Что мешает позиционировать форму используя эту формулу как переменную адреса на листе?
точно не использует API и возвращается абсолютная ссылка на левую верхнюю видимую в окне ячейку с учетом текущего состояния прокрутки как текст с префиксом "$A:". Что мешает позиционировать форму используя эту формулу как переменную адреса на листе?Serge_007
могу повторить: то, что форма выводится справа от ячейки, можно изменить в параметрах, передаваемых процедуре SetFormPosition. Т.е. она может выводится слева, сверху, снизу и т.д. Надо только единичками пожанглировать. Вместе с тем, если форма не помещается в пределах экрана, она будет расположена с противоположной стороны ячейки (верх/низ, лево/право) в зависимости от настроек.
могу повторить: то, что форма выводится справа от ячейки, можно изменить в параметрах, передаваемых процедуре SetFormPosition. Т.е. она может выводится слева, сверху, снизу и т.д. Надо только единичками пожанглировать. Вместе с тем, если форма не помещается в пределах экрана, она будет расположена с противоположной стороны ячейки (верх/низ, лево/право) в зависимости от настроек.nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
По позиционированию формы была тема у Чипа Пирсона, здесь
и? вы вообще его код глядели, пробовали? Он как бэ не работает должны ообразом, кроме того
Цитата
Note also that FormPositioner does not work on split windows or frozen panes. Support for split windows and frozen panes will be added in a later release.
По позиционированию формы была тема у Чипа Пирсона, здесь
и? вы вообще его код глядели, пробовали? Он как бэ не работает должны ообразом, кроме того
Цитата
Note also that FormPositioner does not work on split windows or frozen panes. Support for split windows and frozen panes will be added in a later release.
nerv, Уважаемый коллега, ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями.
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо):
nerv, Уважаемый коллега, ваш код не работает, если происходит select ячейки в скрытом столбце или области листа "под закрепленными областями.
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо):StepInLik
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо)
Ниже подправленный код (из опубликованного ранее по ссылке в посте выше) - в нем эта проблема тоже исправлена (код не хаять - писан на коленке. кто перепишет и сделает лучше - скажу спасибо)
в предложенном варианте - лишь функции определения координат. там нечего запускать. опубликовал лишь в ознакомительных целях способа решения данной проблемы. кому нужно - изучит, переделает и подключит. (кроме того, они определяют лишь примерные координаты ячейки).
в предложенном варианте - лишь функции определения координат. там нечего запускать. опубликовал лишь в ознакомительных целях способа решения данной проблемы. кому нужно - изучит, переделает и подключит. (кроме того, они определяют лишь примерные координаты ячейки).StepInLik
Сообщение отредактировал StepInLik - Четверг, 22.08.2013, 10:19
вы телефон в магазине купили, а он не работает. Вы к продавцу - почему не работает? А он - "у нас все телефоны не работают. кому нужно - изучит, переделает и подключит"
Иными словами на данный момент я нахожу ваши ссылки/решения чуть менее бесполезными, чем полностью Я пользователь. У меня "не работает".
вы телефон в магазине купили, а он не работает. Вы к продавцу - почему не работает? А он - "у нас все телефоны не работают. кому нужно - изучит, переделает и подключит"
Иными словами на данный момент я нахожу ваши ссылки/решения чуть менее бесполезными, чем полностью Я пользователь. У меня "не работает".nerv
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
nerv. Мое решение не для пользователей, а для тех, кто умеет программировать, интерисуется алгоритмами, занимается самообразованием и просто - не ленится думать (если его действительно волнует проблема позиционирования окна и нахождения координат ячейки на экране). Тем, кому не просто нужно вставить код и использовать, а тем, кто хочет понять - как это работает. Мое предложение - не магазин, это схема "сделай сам" если хочешь. Пусть будет так, да. Если вы - только пользователь, то это не для вас. Извините. На счет получилось - не получилось. Фразы не понял. Это - игра слов?
nerv. Мое решение не для пользователей, а для тех, кто умеет программировать, интерисуется алгоритмами, занимается самообразованием и просто - не ленится думать (если его действительно волнует проблема позиционирования окна и нахождения координат ячейки на экране). Тем, кому не просто нужно вставить код и использовать, а тем, кто хочет понять - как это работает. Мое предложение - не магазин, это схема "сделай сам" если хочешь. Пусть будет так, да. Если вы - только пользователь, то это не для вас. Извините. На счет получилось - не получилось. Фразы не понял. Это - игра слов?StepInLik