MyTetra Share
Делитесь знаниями!
Позиционирование формы возле ячейки Excel 2007+ без Win API (VBA)
02.03.2020
07:03
Текстовые метки: VBA_Excel, позиционирование, DPI, разрешение экрана
Раздел: !Закладки - VBA - Форма

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

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.52
Яндекс индекс цитирования