MyTetra Share
Делитесь знаниями!
Позиционирование формы возле ячейки Excel 2007+ без Win API (VBA)
Время создания: 02.03.2020 07:03
Текстовые метки: VBA_Excel, позиционирование, DPI, разрешение экрана
Раздел: Разные закладки - VBA - Форма
Запись: xintrea/mytetra_db_adgaver_new/master/base/1583121822jimiq2a23o/text.html на raw.githubusercontent.com

Выкладываю код для позиционирования формы пока есть свободная минута :).
Код основан на стандартных возможностях экселя делать это. Короткое описание:

mod_Functions - функции для перевода пикселей в точки и точек в пиксели
mod_GetDesktopMonitor - получение DPI системы и разрешения монитора
mod_GetRectForExcel2007Plus - получение прямоугольника координат ячейки в точках
mod_SetFormPosition - модуль позиционирования. Фиксит выход за пределы экрана, обрабатывает настройки и размещает форму
mod_Test - тестовый код

В данном тестовом файла форма вызывается двойным кликом по ячейке.

Можно задавать предпочтительную позицию формы при вызове процедуры позиционирования. Примеры:

Call SetFormPosition(Form, ActiveCell)

' Позиция задается в аргументах процедуры
' Call SetFormPosition(Form, ActiveCell, -1, 1, -1, -1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, -1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, 1, 1, 1)
' Call SetFormPosition(Form, ActiveCell, 1, -1, -1, -1)



Если кто-то знает, как получить рабочую область экрана без WinAPI, пишите )

К сообщению приложен файл: test.xlsm (35.0 Kb)



выделено красным https://disk.yandex.ru/public....JSHk%3D


По позиционированию формы была тема у Чипа Пирсона, здесь:
http://www.cpearson.com/Excel/FormPosition.htm



Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования