Excel: VBA сообщает о разной ширине фигуры при открытии одного и того же файла на разных компьютерах

Excel: VBA сообщает о разной ширине фигуры при открытии одного и того же файла на разных компьютерах

Я ломаю голову, почему. Оба компьютера работают под управлением Win7 pro 64 bit и одной и той же версии 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/

Связанный контент