|
1C и Power Point | ☑ | ||
---|---|---|---|---|
0
KnightAlone
28.11.19
✎
16:45
|
Кто-нибудь делал презентации в Power Point с помощью регл. задания в 1С? Помощь нужна. Я с VBA практически не работал. Нашел я пример обработки на инфостарте, вроде более менее все сделал под себя, осталось 2 непонятки.
1. нужно сделать заливку таблицы прозрачной, в PP руками как это делается нашел, как это сделать кодом? 2. Первую строку в таблице не надо никак выделять. Аналогично первому вопросу - как кодом? https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.tablebackground.fill вот тут пытался прочитать, вроде за фон отвечает Background, за первую строку FirstRow. код Таблица.FirstRow = False; Таблица.Background.Fill.Visible = False; вываливается в ошибку. Причем в методичке FirstRow точно прописан, как булево, про вторую строку не уверен в правильности Вот рабочий код: Рисунок = НовыйСлайд.Shapes.AddPicture(СписокФайлов.Получить(СлучайноеЧисло).Значение, Ложь, Истина, 10, 10, ШиринаСлайда - 20, ВысотаСлайда - 20); ТекКолСтрок = ?(КоличествоСтрок - ТаблНом*МаксимумСтрокВТаблице < 0, КоличествоСтрок - (ТаблНом-1)*МаксимумСтрокВТаблице,МаксимумСтрокВТаблице); ВысотаТаблицы = ТекКолСтрок * 30; Таблица = НовыйСлайд.Shapes.AddTable(ТекКолСтрок , КоличествоКолонок, 118, 163, ШиринаСлайда, ВысотаТаблицы); //Таблица.FirstRow = False; //Таблица.Background.Fill.Visible = False; Таблица.Table.Columns(1).Width = 763; Таблица.Table.Columns(2).Width = 100; Для СтрокаНомер = 1 По ТекКолСтрок Цикл Таблица.Table.Cell(СтрокаНомер, 1).Shape.TextFrame.TextRange.Text = Строка(Объект.Именинники[НомерСтроки].ФизЛицо); Таблица.Table.Cell(СтрокаНомер, 2).Shape.TextFrame.TextRange.Text = Формат(Объект.Именинники[НомерСтроки].ДатаРождения,"ДФ='dd MMMM'"); НомерСтроки = НомерСтроки + 1; Если НомерСтроки >= КоличествоСтрок Тогда Возврат; КонецЕсли; КонецЦикла; |
|||
1
uno-group
28.11.19
✎
16:52
|
сервис-макрос-начать запись. делаемый, что нужно. записуем макрос. Смотришь его код и вытаскиваешь правильный синтаксис.
|
|||
2
KnightAlone
28.11.19
✎
17:09
|
(1) с этой методой я знаком, в Excel там куски кода таскал из макросов. Вот тока в PP в упор не вижу макросы, меню Сервис вообще не вижу. Ладно, поищу, спасибо за наводку
|
|||
3
KnightAlone
28.11.19
✎
17:11
|
нашел. у меня это Вид-Макросы
|
|||
4
KnightAlone
28.11.19
✎
17:19
|
есть создать, есть изменить, есть запуск. но в упор не вижу "начать запись". он мне окрывает окошко VB и предлашает его ручками писать.
office 365 в Excel зашел - там есть Макросы и "начать запись макроса". в PP только Макросы |
|||
5
KnightAlone
28.11.19
✎
17:32
|
Таблица.Table.FirstRow = False;
это работает. остался только первый вопрос - как заливку полупрозрачным сделать. https://docs.microsoft.com/ru-ru/office/vba/api/overview/ тут не вижу про полупрозрачность примеров |
|||
6
mikecool
28.11.19
✎
17:37
|
(3) ставь обычный офис, возможно в 365 обрубили запись
|
|||
7
KnightAlone
28.11.19
✎
17:52
|
(6) хм. так это рабочая машина, какой поставили, такой и стоит )
Таблица.Table.Background.Fill.Transparency = 1; вот вроде нарыл, но оно не дает ни ошибки, ни результата... |
|||
8
uno-group
28.11.19
✎
17:58
|
ИМХО ты фигней занимаешься делается шаблон ручками потом 1с копируется и правится его содержимое.
|
|||
9
НЕА123
28.11.19
✎
18:00
|
Таблица.Table.Background.Fill.Transparency = 0.5;
|
|||
10
KnightAlone
14.01.20
✎
14:59
|
(6) 2007 - это последняя версия PP, в которой позволялось вести запись макросов. такую древнюю версию на работе не нашел. сейчас вернулся к этой задачке, там не решенным осталось только сделать прозрачной заливку и невидимыми линии ячеек таблицы. нашел, как обращаться к границам столбца, либо строки (так и не нашел, как можно сразу на всю таблицу сделать настройку)
https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.cellrange With ActivePresentation.Slides(2).Shapes(5).Table.Columns(1).Cells .Borders(ppBorderRight).DashStyle = msoLineDash End With в итоге пробовал все ячейки первого столбца - - играемся с левой границей Таблица.Table.Columns(1).Cells.Borders(ppBorderLeft).Visible = Ложь; - по идее видимость границ убираем. ноль результата Таблица.Table.Columns(1).Cells.Borders(ppBorderLeft).Transparency = 1; - прозрачность границы полная. ноль результата Таблица.Table.Columns(1).Cells.Borders(ppBorderLeft).Weight = 0; - ширину делаем нулевую. ноль результата пробовал wdLineStyleNone = 0;//No border https://docs.microsoft.com/en-us/office/vba/api/word.wdlinestyle Таблица.Table.Columns(1).Cells.Borders(ppBorderLeft).Style = wdLineStyleNone; тоже ничего не меняется. ни ошибок, ни результата памагиииитеее ))) |
|||
11
KnightAlone
14.01.20
✎
15:11
|
вот что миста животворящая делает! сразу нашел в чем проблема
https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.ppbordertype вот правильные значения переменных границ. я для левой задавал -2, нашел на каком-то другом сайте, а это походу для Wordа было |
|||
12
KnightAlone
14.01.20
✎
15:12
|
границы убиваем вот так.
Таблица.Table.Columns(1).Cells.Borders(ppBorderRight).Weight = 0; Таблица.Table.Columns(1).Cells.Borders(ppBorderLeft).Weight = 0; Таблица.Table.Columns(1).Cells.Borders(ppBorderBottom).Weight = 0; Таблица.Table.Columns(1).Cells.Borders(ppBorderTop).Weight = 0; осталось заливку добить |
|||
13
KnightAlone
14.01.20
✎
15:23
|
я в (5) описАлся, там прозрачную заливку надо, а не полупрозрачную
|
|||
14
dezss
14.01.20
✎
15:42
|
(13) ну 0 попробуй
|
|||
15
KnightAlone
14.01.20
✎
15:48
|
(14) это я конечно уже пробовал. сейчас вот думаю, надо попробовать играться видимостью фона столбца, может там что выгорит.
|
|||
16
KnightAlone
14.01.20
✎
16:14
|
https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.fillformat.background
ActivePresentation.Slides(1).Shapes(1).Fill.Background В этом примере задается Заливка фигуры на слайде 1 в активной презентации в соответствии с фоном слайда. По идее мне вот это и надо, но я никак не соображу, как этот кусок в 1с-ке должен выглядеть. |
|||
17
KnightAlone
14.01.20
✎
16:22
|
Таблица.Fill.Transparency = 1;
всем спасибо, кто помогал. особенно (5) (11) (16) |
|||
18
Кодер
14.01.20
✎
17:29
|
MAV-у бы это в следующий релиз книжки :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |