Как я могу установить имя текстового поля в издателе?
2 ответа
Есть окно свойств, к которому можно получить доступ для каждого элемента управления в пользовательском интерфейсе. Там вы можете переименовать элементы управления. (Поскольку у вас еще нет кода VBA, и вы хотите переименовать элемент управления из пользовательского интерфейса)
Другая альтернатива. Запишите макрос, внесите некоторые изменения в текстовое поле (например, измените размер, измените текст и т. Д.). Затем проверьте присвоенное программе имя по умолчанию для текстового поля из редактора VBA. Как вы сказали, вы можете получить доступ к элементу управления через это имя по умолчанию и, используя ваш код VBA (как вы сказали), переименовать текстовое поле.
Если вы действительно хотите редактировать объект рабочего листа в Publisher, вам нужно получить объект OLE объекта Shape и интерпретировать его как приложение Excel.Application.
Если вы просто ищете решение для заполнителей для документов Publisher, вы можете просто создать текстовое поле, содержащее определенную строку, а затем перебрать все страницы, все фигуры на каждой странице, где HasTextFrame = msoTrue, и сравнить shape.TextFrame.TextRange.Text к вашей строке заполнителя. Если это тот, который вы ищете, вы можете делать все, что вы хотите с данной формой.
Извините за смутный ответ, но ваши изображения больше не работают.
Редактировать: вы можете работать с Shape.Name для сравнения (вы упомянули это свойство в комментарии), но я понятия не имею, как вы установите значение из интерфейса, во-первых, без использования VBA, так что если вы При создании шаблонов подход, который я описал выше, может быть проще для пользователей (см. https://msdn.microsoft.com/EN-US/library/office/ff939233.aspx для Shape.Name). Существует также свойство.Name для объектов страницы ( https://msdn.microsoft.com/EN-US/library/office/ff940382.aspx), поэтому вы должны иметь возможность делать что-то вроде ActiveDocument.Pages("имя_страницы").).Shapes("shape_name").TextRange.Text = "ваш контент", как только вы выяснили, как на самом деле установить значения имени
Редактировать 2: Вы также можете попробовать использовать поиск и замену в соответствии с " Замена текста в Microsoft Publisher Using Powershell", если вам не нужно делать что-то более сложное, кроме размещения текста
Редактировать 3: Учитывая заголовок вашего вопроса, если вы не можете что-то выяснить с помощью интерфейса Publisher, вы можете установить свойство.Name выбранного текстового поля (или другой фигуры) с помощью dim shape = Selection.ShapeRange.TextFrame.Parent и shape.Name = "ваше_имя". Вы можете установить имя выбранной страницы с помощью ActiveDocument.ActiveView.ActivePage.Name="your_name". (Создайте макрос VBA, который запрашивает у вас имена, и вы должны быть в порядке)