Новости:

Новая редакция правил форума: 2.4. Если вопрос или ответ содержится во вложенном файле, все-равно кратко описывайте в сообщении вопрос или суть решения. Это необходимо, чтобы тему можно было найти через поиск.

Главное меню

VBA. Влияние DPI (масштаба) винды на расчет координат в VBA

Автор Assa_13, 06.07.2016, 15:46

« назад - далее »

Assa_13

    Добрый день, форумчане!
    Проблема следующая: при изменении масштаба в винде со 100% на какое-либо другое, координаты считаются неверно(по всей видимости есть какая-то формула для перерасчета).
    Покажу на коротеньком примере:

a = ActiveSheet.Cells(currentRow + qntCurrency - 1, 1).Top
b = ActiveSheet.Cells(currentRow + qntCurrency - 1, 1).Height
с = Application.CentimetersToPoints(paperHeight) _
- ActiveSheet.PageSetup.BottomMargin _
- ActiveSheet.PageSetup.Top


Для 100 %:

  • a = 281.25
  • b = 28.5
  • c = 566.9291
Для 125%:

  • a = 284.4
  • b = 28.2
  • c = 566.9291
Как видите при использовании команды TOP или HEIGHT мы получаем разные значение, причем для команды TOP значение a при 100% меньше чем при 125%, а для команды HEIGHT наоборот: значение b при 100% больше чем при 125%. При всем при этом координата с рассчитывается одинаково при любом масштабе. Собственно в этом и проблема. Здесь либо TOP и HEIGHT надо на что-то домножать, либо изменять формулу для расчета с или тоже на что-то домножать.
Не подскажите как согласовать эти расчеты. Может быть есть какая либо пропорция? Я не смогла подобрать такого коэффициента. Заранее большое спасибо :)[/list]

vikttur


Assa_13

#2
Там ещё не ответили, а только предположили. И по всей видимости неверно)

vikttur

Вот Вы "там" зайдите в правила и почитайте, что написано о размещении дублей тем.
Не запрещено, но Вы отнимаете время у тех, кто не знает о предложенном и пишет то же самое. Поэтому ссылки на параллельное обсуждение должны давать сами.