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

Вход

Регистрация

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

 

= Мир MS Excel/Относительность координат вставки картинки - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Относительность координат вставки картинки
ajiekceu2691 Дата: Среда, 22.05.2019, 19:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте!

Делаю пакетную вставку подписей в документы Word посредством Excel

Столкнулся с такой проблемой: при вставки подписей через объект Shape, подписи не всегда отображались на листе, ходя в документе присутствовали.
Опытным путем выяснилось, что в некоторых документах свойство .Top задается не относительно верхнего края листа, а относительного нижнего (или вообще штампа, пока не понял), закономерности никакой не нашел. Соответственно, например, для некоторых документов А4 (высота 29,7 см) вместо oShape.Top = wdApp.CentimetersToPoints(26) приходится писать oShape.Top = wdApp.CentimetersToPoints(3,3)

Соответствие между координатами .Top такое
25-> 2.3
26 -> 3.3
26.5 -> 3.8
28 -> 5.3
28.4 -> 5.7

Пробовал даже через .TopRelative - в итоге все рисунки просто кучкуются в одном месте, для обычных документов где отсчет от верхнего края все так же прекрасно работает

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

[vba]
Код
Dim oShape As Word.Shape

Set oShape = wd.Sections(1).Footers(wdHeaderFooterFirstPage).Shapes.AddPicture( _
        fileName:=ActiveWorkbook.path & "\Подписи\" & nameSign, _
        LinkToFile:=False, SaveWithDocument:=True)

        With oShape
        .LockAspectRatio = msoTrue
        .Width = wdApp.CentimetersToPoints(signW)
        .PictureFormat.TransparentBackground = msoTrue
        .PictureFormat.TransparencyColor = RGB(255, 255, 255)
        .Fill.Visible = msoFalse
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
        .LayoutInCell = False
        .WrapFormat.AllowOverlap = True
        End With

oShape.Left = wdApp.CentimetersToPoints(5.5)
oShape.Top = wdApp.CentimetersToPoints(3.3)

Set oShape = Nothing
[/vba]
 
Ответить
СообщениеЗдравствуйте!

Делаю пакетную вставку подписей в документы Word посредством Excel

Столкнулся с такой проблемой: при вставки подписей через объект Shape, подписи не всегда отображались на листе, ходя в документе присутствовали.
Опытным путем выяснилось, что в некоторых документах свойство .Top задается не относительно верхнего края листа, а относительного нижнего (или вообще штампа, пока не понял), закономерности никакой не нашел. Соответственно, например, для некоторых документов А4 (высота 29,7 см) вместо oShape.Top = wdApp.CentimetersToPoints(26) приходится писать oShape.Top = wdApp.CentimetersToPoints(3,3)

Соответствие между координатами .Top такое
25-> 2.3
26 -> 3.3
26.5 -> 3.8
28 -> 5.3
28.4 -> 5.7

Пробовал даже через .TopRelative - в итоге все рисунки просто кучкуются в одном месте, для обычных документов где отсчет от верхнего края все так же прекрасно работает

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

[vba]
Код
Dim oShape As Word.Shape

Set oShape = wd.Sections(1).Footers(wdHeaderFooterFirstPage).Shapes.AddPicture( _
        fileName:=ActiveWorkbook.path & "\Подписи\" & nameSign, _
        LinkToFile:=False, SaveWithDocument:=True)

        With oShape
        .LockAspectRatio = msoTrue
        .Width = wdApp.CentimetersToPoints(signW)
        .PictureFormat.TransparentBackground = msoTrue
        .PictureFormat.TransparencyColor = RGB(255, 255, 255)
        .Fill.Visible = msoFalse
        .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
        .RelativeVerticalPosition = wdRelativeVerticalPositionPage
        .LayoutInCell = False
        .WrapFormat.AllowOverlap = True
        End With

oShape.Left = wdApp.CentimetersToPoints(5.5)
oShape.Top = wdApp.CentimetersToPoints(3.3)

Set oShape = Nothing
[/vba]

Автор - ajiekceu2691
Дата добавления - 22.05.2019 в 19:47
bmv98rus Дата: Среда, 22.05.2019, 23:56 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4147
Репутация: 772 ±
Замечаний: 0% ±

Excel 2013/2016


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениекросс

Автор - bmv98rus
Дата добавления - 22.05.2019 в 23:56
ajiekceu2691 Дата: Четверг, 23.05.2019, 23:22 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
кросс

А по теме что-нибудь можете подсказать?
К сообщению приложен файл: 5612646.zip (18.0 Kb) · 0693709.zip (43.9 Kb)
 
Ответить
Сообщение
кросс

А по теме что-нибудь можете подсказать?

Автор - ajiekceu2691
Дата добавления - 23.05.2019 в 23:22
ajiekceu2691 Дата: Четверг, 23.05.2019, 23:25 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
В одно сообщение файлы не влезли, добавляю

Во вложениях Тест.xlsm с макросом, два вордовских документа, один обычный и второй с инверсными координатам, ну и сама подпись для вставки
К сообщению приложен файл: __.zip (81.9 Kb) · 6306192.png (46.2 Kb)
 
Ответить
СообщениеВ одно сообщение файлы не влезли, добавляю

Во вложениях Тест.xlsm с макросом, два вордовских документа, один обычный и второй с инверсными координатам, ну и сама подпись для вставки

Автор - ajiekceu2691
Дата добавления - 23.05.2019 в 23:25
  • Страница 1 из 1
  • 1
Поиск:

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