Единицы измерения ColumnWidth и RowHeigh

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Единицы измерения ColumnWidth и RowHeigh

Сообщение Calvin » 07.04.2004 (Ср) 10:32

Здраствуйте уважаемые. Помогите с вопросом. Не совсем понятно, чем отличается единица измерения, указывающая высоту строк и ширину столбцов. А еще есть свойство Width и оно видимо учитывается в поинтах...
И еще вопрос: сколько пикселей в 1 мм :roll:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2004 (Ср) 11:37

А где именно это ColumnWidth? Скорее всего в символах.
А вопрос про то, сколько пикселов в миллиметре - уточняй, на каком устройстве.
Lasciate ogni speranza, voi ch'entrate.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 07.04.2004 (Ср) 12:02

По поводу пикселей, то это высота и ширина ячеек Экселе.
Columns(1).ColumnWidth и Rows(1).RowHeight там же. Просто если ширину столбца "А" задать 12,75 (в непонятно каких величинах) и строку"1" тоже 12,75, то разница визуально очень ощутима :wink: . Я вот поэтому и спрашиваю, чем отличаются единицы измерения высоты строки от единицы измерения ширины столбца???
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2004 (Ср) 16:44

Ширина в символах, высота (вроде бы) в пойнтах. И насколько я помню, у объекта Excel.Application есть методы для перевода значений из одной системы исчисления в другую.
Lasciate ogni speranza, voi ch'entrate.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Сообщение Calvin » 08.04.2004 (Чт) 8:54

Просто меня заинтересовала тема "№ страницы ячейки (Excel)" совсем недавно обсуждавшаяся. Теоретически эту проблему можно было бы побороть, но опять траблы......
Для начала можно было бы определить границы полей и колонтитулов листа (свойства LeftMargin, RightMargin и т.д. ...выводят значения в поинтах (1поинт=0,353мм)), поэтому переводим в мм:
Код: Выделить всё
'границы полей
LeftM = Round(ActiveSheet.PageSetup.LeftMargin * 0.353 / 10, 2)
RightM = Round(ActiveSheet.PageSetup.RightMargin * 0.353 / 10, 2)
TopM = Round(ActiveSheet.PageSetup.TopMargin * 0.353 / 10, 2)
DownM = Round(ActiveSheet.PageSetup.BottomMargin * 0.353 / 10, 2)

'границы колонтитулов (верхнего и нижнего)
TopKol = Round(ActiveSheet.PageSetup.HeaderMargin * 0.353 / 10, 2)
DownKol = Round(ActiveSheet.PageSetup.FooterMargin * 0.353 / 10, 2)


А потом определить совокупную высоту строк и столбцов. Размер бумаги А4=210x297. Вот и посчитать на какой станице находится ячейка, отняв от 297мм (допустим по вертикали) высоту нижних, верхних границ полей и колонтитулов (так же и по горизонтали), таким образом вычислив печатаемую область страницы. Ну а потом сравнивать с местоположением данной ячейки.

Но из-за того, что высоту строк и ширину столбцов мне не получается вычислить в мм, вот в этом вся и проблема. Хотя строки, я так понял, в поинтах измеряются, то вроде в мм переводится, но если все вычесть от 297мм, то не сходится. Столкнулся с другой проблемой - границы полей оказывается, что "плавают", знать бы точно в каких пределах?

Если у кого есть желание, поэкспериментируйте, было бы хорошо побороть эту проблему :roll:
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 101

    TopList