Excel: VBA сообщает о разной ширине фигуры, когда один и тот же файл открывается на разных компьютерах
Я почесал голову, почему. На обоих компьютерах установлена 64-разрядная версия Win7 pro и одна и та же версия Excel (версия 1708, сборка 8431.2236). В электронную таблицу вставлено 8 изображений. Вот что я использовал, чтобы сообщить ширину изображения:
For Each p In ActiveSheet.Shapes
MsgBox ("TL row: " & p.TopLeftCell.Row & ", TL column: " & p.TopLeftCell.Column & " ,image width: " & p.Width)
Вот что я получил на двух компьютерах:
computer 1 computer 2
14, 1, 72 14, 1, 73.2
157, 4, 379.5 157, 4, 386.4
182, 4, 379.5 182, 4, 386.4
208, 4, 379.5 208, 4, 386.4
234, 4, 379.5 234, 4, 386.4
260, 4, 379.5 260, 4, 386.4
286, 4, 379.5 286, 4, 386.4
418, 5, 198 418, 5, 201.6
Я понимаю, что не может быть "ответа" на мой расплывчатый вопрос. Однако любая подсказка / идея была бы оценена!
1 ответ
Точка - это абстрактное измерение, пытающееся упорядочить пиксели и масштабирование в более реальной метрике. (см. Обновление 1 ниже)
Пиксель - это физическая конструкция на вашем экране с определенным и реальным размером и формой.
Масштабирование - это способ привести приложения в соответствие с используемыми размерами на жидкокристаллических экранах с исходным разрешением.
Проблема, с которой вы сталкиваетесь, заключается в том, что Excel, вероятно, использует точки для определения размера данного объекта, и на разных дисплеях с разными разрешениями и различными настройками масштабирования размер точки может различаться, и, следовательно, расположение диаграммы или объекта также будет колебаться.
Существуют способы определения размера элементов в Excel с помощью эмпирических мер, но они могут просто обратить проблему, а не решить ее.
ОБНОВЛЕНИЕ 1: Возможно, я ошибся насчет очков. Похоже, что в Excel используются точки "PostScript", которые являются эмпирическим измерением 1/72 дюйма. Точки используются в других системах оформления экрана так, как я описал выше. Основная проблема в том же: Excel пытается сделать все возможное, на разных экранах, разрешениях и масштабах, чтобы все работало правильно.
Для дополнительного чтения:
https://forums.techguy.org/threads/units-used-in-excel.178564/
Как сделать клетки идеальными квадратами в Excel?
http://dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/