Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Картинка по размеру, рассчитанному в таблице Экселя - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Картинка по размеру, рассчитанному в таблице Экселя (Формулы/Formulas)
Картинка по размеру, рассчитанному в таблице Экселя
svobodniy Дата: Среда, 02.04.2014, 11:36 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Скорее всего такого сделать невозможно, но я все же спрошу.

Есть необходимость визуально показывать размер объекта. Объект является прямоугольной картинкой, размеры рассчитываются в таблице в сантиметрах (выделил красным).

Можно как-то привязать размер картинки к рассчитанным размерам? Или может как-то вписать картинку в ячейку и привязать размеры ячейки к рассчитанным размерам? Я уж не знаю как это все возможно :)
К сообщению приложен файл: 3538621.xlsx (86.9 Kb)


Сообщение отредактировал svobodniy - Среда, 02.04.2014, 11:36
 
Ответить
СообщениеСкорее всего такого сделать невозможно, но я все же спрошу.

Есть необходимость визуально показывать размер объекта. Объект является прямоугольной картинкой, размеры рассчитываются в таблице в сантиметрах (выделил красным).

Можно как-то привязать размер картинки к рассчитанным размерам? Или может как-то вписать картинку в ячейку и привязать размеры ячейки к рассчитанным размерам? Я уж не знаю как это все возможно :)

Автор - svobodniy
Дата добавления - 02.04.2014 в 11:36
AlexM Дата: Среда, 02.04.2014, 12:06 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
Пока ничего не понятно. Опишите задачу подробнее.
Картинки на диске, их надо вставить в Excel, определить размеры, пересчитать и по расчету изменить размер картинок, потом сохранить?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеПока ничего не понятно. Опишите задачу подробнее.
Картинки на диске, их надо вставить в Excel, определить размеры, пересчитать и по расчету изменить размер картинок, потом сохранить?

Автор - AlexM
Дата добавления - 02.04.2014 в 12:06
svobodniy Дата: Среда, 02.04.2014, 12:30 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Картинка либо на диске, либо в самом документе - не важно.
Картинка всего одна.
В таблице рассчитывается размер картинки и его надо применить к данной картинке, чтобы иметь визуальное представление на мониторе.
 
Ответить
СообщениеКартинка либо на диске, либо в самом документе - не важно.
Картинка всего одна.
В таблице рассчитывается размер картинки и его надо применить к данной картинке, чтобы иметь визуальное представление на мониторе.

Автор - svobodniy
Дата добавления - 02.04.2014 в 12:30
AlexM Дата: Среда, 02.04.2014, 13:51 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
Код в Module1
[vba]
Код
Sub Macros()
     Dim sha As Shape
     For Each sha In ActiveSheet.Shapes
         iName = sha.Name 'имя картинки
         iHeight = sha.Height 'Высота картинки в px
         iWidth = sha.Width 'Ширина картинки в px
         sha.Height = 468 'Изменить высоту
         sha.Width = 361 'Изменить ширину
     Next
End Sub
[/vba]
Вместо фиксированных значений размера в коде, можно брать его из ячеек.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеКод в Module1
[vba]
Код
Sub Macros()
     Dim sha As Shape
     For Each sha In ActiveSheet.Shapes
         iName = sha.Name 'имя картинки
         iHeight = sha.Height 'Высота картинки в px
         iWidth = sha.Width 'Ширина картинки в px
         sha.Height = 468 'Изменить высоту
         sha.Width = 361 'Изменить ширину
     Next
End Sub
[/vba]
Вместо фиксированных значений размера в коде, можно брать его из ячеек.

Автор - AlexM
Дата добавления - 02.04.2014 в 13:51
svobodniy Дата: Среда, 02.04.2014, 14:06 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Хм. Картинка реагирует на заданные размеры. Но почему-то отображается просто громадной. Т.е. не соответствует действительности... Как-то не ясно... какова зависимость между пикселями/сантиметрами в Экселе и реальными пикселями монитора... И как добиться адекватного результата.
 
Ответить
СообщениеХм. Картинка реагирует на заданные размеры. Но почему-то отображается просто громадной. Т.е. не соответствует действительности... Как-то не ясно... какова зависимость между пикселями/сантиметрами в Экселе и реальными пикселями монитора... И как добиться адекватного результата.

Автор - svobodniy
Дата добавления - 02.04.2014 в 14:06
AlexM Дата: Среда, 02.04.2014, 14:19 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
1 дюйм = 2,54 см
Пиксел это точка. Его размер зависит от свойств оборудования. У мониторов и принтеров принято считать количество пиклелей на 1 дюйм
Допустим, размер пиксела 1х1 мм картику в 100х100 px мы увидим некого размера
Теперь размер пикселя 2х2 мм - картинка получится в 4 раза больше, хотя она будет так же 100х100 px
PS. в вашем файле картинка перед изменением размеров была Н=351, W=270,75 Возможно, на вашем мониторе размеры определит другие. Надо проверить.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 02.04.2014, 14:24
 
Ответить
Сообщение1 дюйм = 2,54 см
Пиксел это точка. Его размер зависит от свойств оборудования. У мониторов и принтеров принято считать количество пиклелей на 1 дюйм
Допустим, размер пиксела 1х1 мм картику в 100х100 px мы увидим некого размера
Теперь размер пикселя 2х2 мм - картинка получится в 4 раза больше, хотя она будет так же 100х100 px
PS. в вашем файле картинка перед изменением размеров была Н=351, W=270,75 Возможно, на вашем мониторе размеры определит другие. Надо проверить.

Автор - AlexM
Дата добавления - 02.04.2014 в 14:19
svobodniy Дата: Среда, 02.04.2014, 14:36 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я могу пересчитать дюймы в пиксели зная диагональ и разрешение монитора, что в принципе в таблице и делается. Если брать из таблицы, то у меня второй монитор на 19 дюймов. Картинка в графическом редакторе 361*468 пикселей, я ее копирую в Эксель - она такая же 361*468 пикселей. А вот когда применяю макрос с размерами 361*468, она становится раза в полтора больше...
 
Ответить
СообщениеЯ могу пересчитать дюймы в пиксели зная диагональ и разрешение монитора, что в принципе в таблице и делается. Если брать из таблицы, то у меня второй монитор на 19 дюймов. Картинка в графическом редакторе 361*468 пикселей, я ее копирую в Эксель - она такая же 361*468 пикселей. А вот когда применяю макрос с размерами 361*468, она становится раза в полтора больше...

Автор - svobodniy
Дата добавления - 02.04.2014 в 14:36
svobodniy Дата: Среда, 02.04.2014, 14:54 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Методом научного тыка подобрал коэффициент 0,75. Т.е. реальный размер картинки составляет только 75% от той, которая получается в Экселе при выставлении размеров по пикселям.

Теперь бы понять, как все это связано и как отображать реальные размеры на других мониторах, зная физический размер пикселя матрицы (в мм).
 
Ответить
СообщениеМетодом научного тыка подобрал коэффициент 0,75. Т.е. реальный размер картинки составляет только 75% от той, которая получается в Экселе при выставлении размеров по пикселям.

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

Автор - svobodniy
Дата добавления - 02.04.2014 в 14:54
AlexM Дата: Среда, 02.04.2014, 15:26 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
В макросе размеры определяются в пунктах
Размер пикселя зависит от разрешения монитора, поэтому он переменный.
1дюйм=72,27 пункта(points)=2,54см
1 пункт=1/72 дюйма=0,35 мм
1мм=2,835 пункта
К сообщению приложен файл: 3538621_new.rar (84.8 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Среда, 02.04.2014, 15:27
 
Ответить
СообщениеВ макросе размеры определяются в пунктах
Размер пикселя зависит от разрешения монитора, поэтому он переменный.
1дюйм=72,27 пункта(points)=2,54см
1 пункт=1/72 дюйма=0,35 мм
1мм=2,835 пункта

Автор - AlexM
Дата добавления - 02.04.2014 в 15:26
Russel Дата: Среда, 02.04.2014, 16:08 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Почитайте статью, мне кажется она о Вашем вопросе.


QIWI 9173973973
 
Ответить
СообщениеПочитайте статью, мне кажется она о Вашем вопросе.

Автор - Russel
Дата добавления - 02.04.2014 в 16:08
svobodniy Дата: Среда, 02.04.2014, 16:30 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
В макросе размеры определяются в пунктах

Ну вот из этого файла размеры на мониторе получаются не верные...

Размер пикселя зависит от разрешения монитора, поэтому он переменный.

Это все ясно. Размер пикселя вычислить не сложно. Но как соотнести - не ясно...

Почитайте статью, мне кажется она о Вашем вопросе.

Это все мы знаем. Там всего 2 факта про 72 и 96... А дальше то что?

Итого, остается вопрос... Как спроецировать картинку на свой монитор такого размера, какой она будет на чужом мониторе с другой диагональю и другим разрешением. Вот моя задача...


Сообщение отредактировал svobodniy - Среда, 02.04.2014, 16:40
 
Ответить
Сообщение
В макросе размеры определяются в пунктах

Ну вот из этого файла размеры на мониторе получаются не верные...

Размер пикселя зависит от разрешения монитора, поэтому он переменный.

Это все ясно. Размер пикселя вычислить не сложно. Но как соотнести - не ясно...

Почитайте статью, мне кажется она о Вашем вопросе.

Это все мы знаем. Там всего 2 факта про 72 и 96... А дальше то что?

Итого, остается вопрос... Как спроецировать картинку на свой монитор такого размера, какой она будет на чужом мониторе с другой диагональю и другим разрешением. Вот моя задача...

Автор - svobodniy
Дата добавления - 02.04.2014 в 16:30
Russel Дата: Среда, 02.04.2014, 17:55 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Как спроецировать картинку на свой монитор такого размера, какой она будет на чужом мониторе с другой диагональю и другим разрешением. Вот моя задача...

Ощущение, что я что-то упускаю в своих рассуждениях.... НО! Я сейчас поменял разрешения на своем компе на отличные от разрешения по умолчанию, а картинка свой размер не меняет - 9,55 см по ширине (мерил линейкой).
То есть, если в экселе выбрать размер объекта 10х10 см, масштаб листа 100%, то на (правильно настроенном) экране, этот объект будет отображаться с размерами 10х10 см.
Давайте еще раз, что Вы хотите получить?


QIWI 9173973973

Сообщение отредактировал Russel - Среда, 02.04.2014, 17:59
 
Ответить
Сообщение
Как спроецировать картинку на свой монитор такого размера, какой она будет на чужом мониторе с другой диагональю и другим разрешением. Вот моя задача...

Ощущение, что я что-то упускаю в своих рассуждениях.... НО! Я сейчас поменял разрешения на своем компе на отличные от разрешения по умолчанию, а картинка свой размер не меняет - 9,55 см по ширине (мерил линейкой).
То есть, если в экселе выбрать размер объекта 10х10 см, масштаб листа 100%, то на (правильно настроенном) экране, этот объект будет отображаться с размерами 10х10 см.
Давайте еще раз, что Вы хотите получить?

Автор - Russel
Дата добавления - 02.04.2014 в 17:55
AlexM Дата: Среда, 02.04.2014, 18:10 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
Ощущение, что я что-то упускаю
У меня такое же ощущение.
Может как-то использовать данные по разрешению конкретного монитора? Разрешение можно определить так
[vba]
Код
Private Declare Function GetSystemMetrics _
         Lib "user32.dll" (ByVal nIndex As Long) As Long
Sub Get_System_Metrics()
Dim iX As Long, iY As Long
     iX = GetSystemMetrics(1&)
     iY = GetSystemMetrics(0&)
End Sub
[/vba]
Если код вставить в модуль "Эта книга" на событие Workbook_Open, то можно использовать полученные данные для масштабирования или как-то по другому.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
Ощущение, что я что-то упускаю
У меня такое же ощущение.
Может как-то использовать данные по разрешению конкретного монитора? Разрешение можно определить так
[vba]
Код
Private Declare Function GetSystemMetrics _
         Lib "user32.dll" (ByVal nIndex As Long) As Long
Sub Get_System_Metrics()
Dim iX As Long, iY As Long
     iX = GetSystemMetrics(1&)
     iY = GetSystemMetrics(0&)
End Sub
[/vba]
Если код вставить в модуль "Эта книга" на событие Workbook_Open, то можно использовать полученные данные для масштабирования или как-то по другому.

Автор - AlexM
Дата добавления - 02.04.2014 в 18:10
Russel Дата: Четверг, 03.04.2014, 08:12 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Я кажется понял, что имеет в виду автор.
Одна и та же картинка (размерами, пусть будет, 100*100 px) на разных мониторах не в excel'e будет иметь разные размеры в см, вот он и хочет понять, как они будут смотреться.
К сообщению приложен файл: 3538621-1-.xlsx (87.6 Kb)


QIWI 9173973973

Сообщение отредактировал Russel - Четверг, 03.04.2014, 08:15
 
Ответить
СообщениеЯ кажется понял, что имеет в виду автор.
Одна и та же картинка (размерами, пусть будет, 100*100 px) на разных мониторах не в excel'e будет иметь разные размеры в см, вот он и хочет понять, как они будут смотреться.

Автор - Russel
Дата добавления - 03.04.2014 в 08:12
svobodniy Дата: Четверг, 03.04.2014, 10:20 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я кажется понял, что имеет в виду автор.
Одна и та же картинка (размерами, пусть будет, 100*100 px) на разных мониторах не в excel'e будет иметь разные размеры в см, вот он и хочет понять, как они будут смотреться.

Именно!!!

В приложенном вами файле ваш расчет точно совпадает с моим (выделенным красным). Вопрос остается, как сделать так, чтобы эксель показывал картинку нужного размера автоматически? Ну никак он не хочет показывать правильные размеры, ни через пиксели, ни через пункты... не получается...
 
Ответить
Сообщение
Я кажется понял, что имеет в виду автор.
Одна и та же картинка (размерами, пусть будет, 100*100 px) на разных мониторах не в excel'e будет иметь разные размеры в см, вот он и хочет понять, как они будут смотреться.

Именно!!!

В приложенном вами файле ваш расчет точно совпадает с моим (выделенным красным). Вопрос остается, как сделать так, чтобы эксель показывал картинку нужного размера автоматически? Ну никак он не хочет показывать правильные размеры, ни через пиксели, ни через пункты... не получается...

Автор - svobodniy
Дата добавления - 03.04.2014 в 10:20
Russel Дата: Четверг, 03.04.2014, 11:43 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Автоматически макросом из сообщения 4 (надо его только изменить, чтобы значения брались из ячеек).
Сам я в ВБА не силен, увы.


QIWI 9173973973
 
Ответить
СообщениеАвтоматически макросом из сообщения 4 (надо его только изменить, чтобы значения брались из ячеек).
Сам я в ВБА не силен, увы.

Автор - Russel
Дата добавления - 03.04.2014 в 11:43
svobodniy Дата: Четверг, 03.04.2014, 11:46 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Автоматику я сделаю. Но я же говорю. Проблема в пикселях/пунктах. Не выходит верного размера...

За два дня перечитал огромное количество всяких статей и форумов по этим пунктам/DPI/PPI/пикселям/дюймам. Вроде все ясно и фактически реальный размер получается перемножением размера пикселя матрицы на количество пикселей... Но Экселю никак не объяснить это... Что-то с Экселем все очень сложно...


Сообщение отредактировал svobodniy - Четверг, 03.04.2014, 11:48
 
Ответить
СообщениеАвтоматику я сделаю. Но я же говорю. Проблема в пикселях/пунктах. Не выходит верного размера...

За два дня перечитал огромное количество всяких статей и форумов по этим пунктам/DPI/PPI/пикселям/дюймам. Вроде все ясно и фактически реальный размер получается перемножением размера пикселя матрицы на количество пикселей... Но Экселю никак не объяснить это... Что-то с Экселем все очень сложно...

Автор - svobodniy
Дата добавления - 03.04.2014 в 11:46
AlexM Дата: Четверг, 03.04.2014, 12:02 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
Думаю алгоритм должен быть такой
Определяем размер картинки в пунктах кодом из сообщения №4. Эти данные записываем в переменную, которую не изменяем до конца работы макроса.
Масштаб окна программы устанавливаем на 100%
[vba]
Код
ActiveWindow.Zoom = 100 'масштаб окна 100%
[/vba]
Затем определяем iX кодом из сообщения №14 установленное разрешение экрана. Устанавливаем размер картинки увеличенный/уменьшенный на эмпирически полученный коэффициент для каждого разрешения.
Перед сохранением файла возвращаем размер картинки используя, сохраненные в начале, переменные.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеДумаю алгоритм должен быть такой
Определяем размер картинки в пунктах кодом из сообщения №4. Эти данные записываем в переменную, которую не изменяем до конца работы макроса.
Масштаб окна программы устанавливаем на 100%
[vba]
Код
ActiveWindow.Zoom = 100 'масштаб окна 100%
[/vba]
Затем определяем iX кодом из сообщения №14 установленное разрешение экрана. Устанавливаем размер картинки увеличенный/уменьшенный на эмпирически полученный коэффициент для каждого разрешения.
Перед сохранением файла возвращаем размер картинки используя, сохраненные в начале, переменные.

Автор - AlexM
Дата добавления - 03.04.2014 в 12:02
svobodniy Дата: Четверг, 03.04.2014, 12:32 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AlexM, в сообщении 4 нет никакого кода для определения размеров в пунктах. Там только применение размера.
Разрешение и размеры своего экрана можно задать вручную.

Вопрос только в пересчете на пункты. Я вчера часа 4 сидел выдумывал форумы начитавшись всяких ФАКов и форумов. Не получается соотнести пиксели и пункты. Что-то это магические какие-то размерности...

П.С. Ладно. Финт ушами не выходит. Будем подгонять ручками по линейке. Вся эта тема на смарку :(
 
Ответить
СообщениеAlexM, в сообщении 4 нет никакого кода для определения размеров в пунктах. Там только применение размера.
Разрешение и размеры своего экрана можно задать вручную.

Вопрос только в пересчете на пункты. Я вчера часа 4 сидел выдумывал форумы начитавшись всяких ФАКов и форумов. Не получается соотнести пиксели и пункты. Что-то это магические какие-то размерности...

П.С. Ладно. Финт ушами не выходит. Будем подгонять ручками по линейке. Вся эта тема на смарку :(

Автор - svobodniy
Дата добавления - 03.04.2014 в 12:32
AlexM Дата: Четверг, 03.04.2014, 12:37 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
в сообщении 4 нет никакого кода для определения размеров в пунктах
мы же далее разобрались, что определяется размер не px, а в пунктах. Вот часть кода[vba]
Код
Sub Macros()
     Dim sha As Shape
     For Each sha In ActiveSheet.Shapes
         iHeight = sha.Height 'Высота картинки в пунктах
         iWidth = sha.Width 'Ширина картинки в пунктах
     Next
End Sub
[/vba]
Разрешение и размеры своего экрана можно задать вручную.

как сделать так, чтобы эксель показывал картинку нужного размера автоматически?
Противоречие наблюдается. Как же вручную или автоматически?



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщение
в сообщении 4 нет никакого кода для определения размеров в пунктах
мы же далее разобрались, что определяется размер не px, а в пунктах. Вот часть кода[vba]
Код
Sub Macros()
     Dim sha As Shape
     For Each sha In ActiveSheet.Shapes
         iHeight = sha.Height 'Высота картинки в пунктах
         iWidth = sha.Width 'Ширина картинки в пунктах
     Next
End Sub
[/vba]
Разрешение и размеры своего экрана можно задать вручную.

как сделать так, чтобы эксель показывал картинку нужного размера автоматически?
Противоречие наблюдается. Как же вручную или автоматически?

Автор - AlexM
Дата добавления - 03.04.2014 в 12:37
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Картинка по размеру, рассчитанному в таблице Экселя (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!