Форум пользователей Visio http://visio.getbb.ru/ |
|
Как добавить строку в секцию User-defined Cells Документа http://visio.getbb.ru/viewtopic.php?f=6&t=1426 |
Страница 1 из 1 |
Автор: | Machestro [ 03 мар 2019, 15:41 ] |
Заголовок сообщения: | Как добавить строку в секцию User-defined Cells Документа |
Добрый день! В очередной раз прошу подсказки у сообщества. Хочу понять как добавлять свои строки в User-Defined Cells Документа через VBA. Макрорекордер не очень помог - он выдал что-то такое: Код: Application.ActiveWindow.Shape.AddRow visSectionUser, 0, visTagDefault Из этого кода можно сделать вывод, что есть некий шейп, который олицетворяет документ. И у этого шейпа ID равен 0. Когда я попробовал этот код после макропекордера, то всё работало как надо - строки добавлялись именно к документу. Но решил попробовать на пустом документе (без предварительного макрорекордера). Написал такой же код как и ранее, но в этом случае новые ячейки добавлялись не к Документу, а к странице, хотя шейп был тоже с индексом 0. И ещё меня смущает, что всё действие идёт через объект Window (ActiveWindow), а не через Document. Смущает, так как макрос будет запускаться из Excel, и оперировать планировал документами, а не окнами, и не очень хочется каждое окно активировать. Может есть какой-нибудь другой способ добавить пользовательские ячейки к документу? |
Автор: | Surrogate [ 03 мар 2019, 16:02 ] |
Заголовок сообщения: | Re: Как добавить строку в секцию User-defined Cells Документа |
DocumentSheet, не пробовали? Дополнено позднее: была ветка похожая
|
Автор: | Shishok [ 03 мар 2019, 16:02 ] |
Заголовок сообщения: | Re: Как добавить строку в секцию User-defined Cells Документа |
Типа так: Код: Sub Macro1()
With ActiveDocument '("Добавить раздел") .AddSection visSectionUser '("Вставить строку") .AddRow visSectionUser, 0, visTagDefault .CellsSRC(visSectionUser, 1, visUserValue).FormulaForceU = "0" .CellsSRC(visSectionUser, 1, visUserPrompt).FormulaForceU = """""" '("Вставить именованную строку") .AddNamedRow visSectionUser, "BlaBla", visTagDefault End With End Sub |
Автор: | Tumanov [ 03 мар 2019, 16:24 ] |
Заголовок сообщения: | Re: Как добавить строку в секцию User-defined Cells Документа |
Цитата: Из этого кода можно сделать вывод, что есть некий шейп, который олицетворяет документ... И ещё меня смущает, что всё действие идёт через объект Window (ActiveWindow), а не через Document... Точнее - действие "начинается" с объекта Window. В общем-то, до шейпа можно добраться разными путями. В данном случае он начался с Window. Но можно было начать с другого объекта. Причем с другого объекта - лучше, потому как Application.ActiveWindow.Shape выглядит несколько невразумительно. И да, документ похож на шейп, потому что у него есть DocumentSheet. И страница похожа на шейп, потому что у нее есть PageSheet. И через эти шейп-листы можно управлять документом и страницей примерно так же, как обычным шейпом через его шейп-лист. |
Автор: | Shishok [ 03 мар 2019, 16:25 ] |
Заголовок сообщения: | Re: Как добавить строку в секцию User-defined Cells Документа |
Не проверил. Поправка: Код: With ActiveDocument.DocumentSheet
|
Автор: | Shishok [ 03 мар 2019, 16:30 ] |
Заголовок сообщения: | Re: Как добавить строку в секцию User-defined Cells Документа |
Можно вставить сразу несколько строк: Код: Sub wewe()
With ActiveDocument.DocumentSheet .AddRows visSectionUser, 0, visTagDefault, 5 ' 5 - количество строк End With End Sub |
Автор: | Machestro [ 03 мар 2019, 18:37 ] |
Заголовок сообщения: | Re: Как добавить строку в секцию User-defined Cells Документа |
Всем спасибо за ответы. DocumentSheet решает данную проблему как мне надо. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |