Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 14:46   #1
Саня_Д
 
Регистрация: 25.09.2009
Сообщений: 5
Восклицание Получить размер диапазона в сантиметрах

Здравствуйте.
Подскажите, пожалуйста, как программно получить размер выделенного диапазона в сантиметрах (ExcelXP)?

Последний раз редактировалось Саня_Д; 25.09.2009 в 14:49.
Саня_Д вне форума Ответить с цитированием
Старый 25.09.2009, 17:08   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Про единицы измерения в Excel можно почитать здесь и здесь

Цитата:
1 пункт = 1/72 дюйма = 1.33 пикселя = 0.35 мм
1 пиксель = 0.75 пункта = 0.24мм
1 мм = 2.85 пунктов = 3.8 пикселей
Об особенностях измерений - здесь

В результате получается что-то вроде этого:
Код:
Function Ширина(Optional ByRef ra As Range) As Double
    If ra Is Nothing Then Set ra = Selection
    Ширина = (ra.Cells(ra.Cells.Count).Left - ra.Cells(1).Left + ra.Cells(ra.Cells.Count).Width) / 28.5
End Function

Function Высота(Optional ByRef ra As Range) As Double
    If ra Is Nothing Then Set ra = Selection
    Высота = (ra.Cells(ra.Cells.Count).Top - ra.Cells(1).Top + ra.Cells(ra.Cells.Count).Height) / 28.5
End Function

Sub test()
    Debug.Print Ширина(Selection), Высота(Selection)
End Sub
Пример:
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.CalculateFull
End Sub
Код:
  Ячейка: B3      Формула  (стиль A1):   =ширина()
                  Формула  (стиль R1C1): =ширина()

  Ячейка: B4      Формула  (стиль A1):   =высота()
                  Формула  (стиль R1C1): =высота()
EducatedFool вне форума Ответить с цитированием
Старый 28.09.2009, 18:11   #3
Саня_Д
 
Регистрация: 25.09.2009
Сообщений: 5
По умолчанию

Огромное спасибо за ответ.
Саня_Д вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить в VBA номера строк выделенного диапазона? Chelentano Microsoft Office Excel 10 04.11.2010 14:25
как удалить #Н/Д из диапазона?? kievlyanin Microsoft Office Excel 12 21.04.2009 14:53
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54
проверка диапазона Bezdar Microsoft Office Excel 15 30.07.2008 08:59
Имя диапазона CAMyM Microsoft Office Excel 8 09.11.2007 10:16