Вход | Регистрация
 

1C и Power Point

1C и Power Point
Я
   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;
            Если  НомерСтроки >= КоличествоСтрок Тогда
                Возврат;
            КонецЕсли;
        КонецЦикла;
 
 
   uno-group
 
1 - 28.11.19 - 16:52
сервис-макрос-начать запись. делаемый, что нужно. записуем макрос. Смотришь его код и вытаскиваешь правильный синтаксис.
   KnightAlone
 
2 - 28.11.19 - 17:09
(1) с этой методой я знаком, в Excel там куски кода таскал из макросов. Вот тока в PP в упор не вижу макросы, меню Сервис вообще не вижу. Ладно, поищу, спасибо за наводку
   KnightAlone
 
3 - 28.11.19 - 17:11
нашел. у меня это Вид-Макросы
   KnightAlone
 
4 - 28.11.19 - 17:19
есть создать, есть изменить, есть запуск. но в упор не вижу "начать запись". он мне окрывает окошко VB и предлашает его ручками писать.

office 365
в Excel зашел - там есть Макросы и "начать запись макроса". в PP только Макросы
   KnightAlone
 
5 - 28.11.19 - 17:32
Таблица.Table.FirstRow = False;

это работает.
остался только первый вопрос - как заливку полупрозрачным сделать. https://docs.microsoft.com/ru-ru/office/vba/api/overview/ тут не вижу про полупрозрачность примеров
   mikecool
 
6 - 28.11.19 - 17:37
(3) ставь обычный офис, возможно в 365 обрубили запись
   KnightAlone
 
7 - 28.11.19 - 17:52
(6) хм. так это рабочая машина, какой поставили, такой и стоит )

Таблица.Table.Background.Fill.Transparency = 1;

вот вроде нарыл, но оно не дает ни ошибки, ни результата...
   uno-group
 
8 - 28.11.19 - 17:58
ИМХО ты фигней занимаешься делается шаблон ручками потом 1с копируется и правится его содержимое.
   НЕА123
 
9 - 28.11.19 - 18:00
Таблица.Table.Background.Fill.Transparency = 0.5;
   KnightAlone
 
10 - 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;
тоже ничего не меняется.
ни ошибок, ни результата

памагиииитеее )))
   KnightAlone
 
11 - 14.01.20 - 15:11
вот что миста животворящая делает! сразу нашел в чем проблема

https://docs.microsoft.com/ru-ru/office/vba/api/powerpoint.ppbordertype

вот правильные значения переменных границ. я для левой задавал -2, нашел на каком-то другом сайте, а это походу для Wordа было
   KnightAlone
 
12 - 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;


осталось заливку добить
   KnightAlone
 
13 - 14.01.20 - 15:23
я в (5) описАлся, там прозрачную заливку надо, а не полупрозрачную
   dezss
 
14 - 14.01.20 - 15:42
(13) ну 0 попробуй
   KnightAlone
 
15 - 14.01.20 - 15:48
(14) это я конечно уже пробовал. сейчас вот думаю, надо попробовать играться видимостью фона столбца, может там что выгорит.
   KnightAlone
 
16 - 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с-ке должен выглядеть.
   KnightAlone
 
17 - 14.01.20 - 16:22
Таблица.Fill.Transparency = 1;

всем спасибо, кто помогал.
особенно (5) (11) (16)
   Кодер
 
18 - 14.01.20 - 17:29
MAV-у бы это в следующий релиз книжки :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.