Как программно (макросом) задать ширину столбца в пикселах
Вроде бы - элементарное действие... но нет, здесь Microsoft нам усложнил задачу.
Получить ширину столбца в пикселах - не проблема, для этого есть свойство Width:
MsgBox "Ширина столбца с активной ячейкой: " & ActiveCell.Width
Но, увы, это свойство доступно только для чтения, - а для назначения ширины столбца нам придётся изменять значение другого свойства - ColumnWidth, которое задаётся отнюдь не в пикселах, а в символах (количестве знаков, которые поместятся в ячейке)
Результат - мы не можем со 100% точностью задать ширину столбца, чтобы она была равна заданному количеству пикселей.
Стал искать решение проблемы на сайте Microsoft - и увидел чудный макрос, который сначала ставит приблизительную ширину, и потом В ЦИКЛЕ подгоняет (увеличивает или уменьшает) значение ширины, до тех пор, пока результат не приблизитс к ожидаемому.
Я и сам пользовался подобным решением - для макроса вставки картинок в Excel, но когда пришла пора реализовать то же самое в универсальной программе для вставки изображений в Excel, понял, что надо искать более удобный способ
К тому же, подбор ширины столбца в цикле - очень медленный способ.
И вот что получилось: