Джерролд знает, что функция LEN возвращает количество символов в текстовой строке. Однако ему нужно знать количество пикселей (а не символов) в текстовой строке. Он задается вопросом, есть ли способ рассчитать стоимость.

Короткий ответ — нет. Более длинный ответ: возможно, и есть. (Звук сбивает с толку? Читайте дальше.) Проблема в том, что пиксели — сокращение от элементов изображения — в основном представляют собой точки на устройстве визуализации, таком как монитор или (более свободно) на принтере. Количество пикселей, упакованных в дюйм, зависит от множества переменных, таких как разрешение устройства вывода, а также его размер.

Например, при том же разрешении количество пикселей на дюйм на 19-дюймовом мониторе будет отличаться от числа на 21-дюймовом мониторе. Зачем? Поскольку разрешение экрана распределяется по большей поверхности дисплея, что приводит к уменьшению количества пикселей на дюйм этой поверхности дисплея.

Теперь давайте добавим шрифты в смесь. Разные шрифты содержат разное количество символов в одном линейном измерении. Чаще всего это можно увидеть, если поместить кучу текста в ячейку, скопировать ячейку на несколько строк вниз, а затем применить разные шрифты к каждой ячейке. Содержимое ячеек будет занимать разное горизонтальное пространство в зависимости от выбранного шрифта (и размера точки).

Если вы используете моноширинный шрифт (например, Courier), который имеет установленный размер для всех символов, вы можете рассчитать количество символов на дюйм для всех символов, а затем, исходя из количества символов, определить приблизительную оценку количества пикселей. Но вы все равно сталкиваетесь с проблемами, потому что вам нужно принимать во внимание устройство вывода.

Это не будет работать с пропорциональными шрифтами, поскольку размер символов зависит от каждого символа: Ms намного шире, чем, например, Is. Следовательно, для каждого символа каждого шрифта (и, возможно, даже каждого размера шрифта) потребуется таблица размеров в пикселях, и нужно будет создать функцию для циклического перебора строки и сохранения промежуточной суммы размеров каждого символа. Это становится еще более сложным, если к шрифту применяются различные атрибуты символов, такие как полужирный или курсив.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3802) применим к Microsoft Excel 97, 2000, 2002 и 2003.