Использование VBA в MS Word 2007 для определения элементов страницы?
Я хотел бы иметь возможность создать элемент страницы, который я могу кормить текстом, и он превратится в предпочтительный макет. Например:
{MACRO DocumentIntro("Introduction to Business Studies", "FP015", "Teachers' Guide")}
при этом в качестве поля вывод должен быть строкой, первые две строки определенного размера и шрифта, центрированные, другая строка, а затем третья строка с шрифтом, размером и центром.
Я знаю, что это похоже на TeX и, возможно, выходит за рамки VBA, но если кто-нибудь знает, как это возможно, расскажите, пожалуйста!
РЕДАКТИРОВАТЬ:
Хорошо, если я добавлю необходимую информацию в ключевое слово, как часть свойств документа, с каким-то уникальным разделителем, тогда эта информация будет введена, и информация будет уникальной для каждого документа. Следующий помещает закладку, где материал будет отображаться. Затем создается AutoOpen
макрос, который идет к этой закладке, извлекает релевантные слова из ключевых слов и соответствующим образом формирует текст в закладке .Selection
,
Это возможно?
2 ответа
Вы, безусловно, на правильном пути для решения проблемы кодирования. Однако существует более простой способ без кода - это тип сценария, для которого были созданы элементы управления содержимым в Word 2007, а с помощью полей / свойств можно привязать элементы управления содержимым (CC). Эти CC могут содержать стили (например, по центру, жирный и т. Д.). VBA не требуется.
Самое простое, что нужно сделать - это выбрать 3 встроенных свойства документа, которые вы всегда захотите. Например, "Заголовок" может быть вашей первой строкой, "Тема" - вашей второй строкой, а "Ключевые слова" - третьей. Затем просто перейдите на ленту вставки, Быстрые детали, Свойства документа и вставьте, разместите и отформатируйте их так, как вам нравится. Затем перейдите к кнопке "Пуск" Word ("Сфера"), а затем в разделе " Подготовка" выберите " Свойства". Здесь вы можете ввести, например, "Введение в бизнес-исследования", в поле " Название", а затем просто отменить его выбор (например, щелкнуть в другом поле). Контент Контент для Заголовка будет автоматически заполнен вашим текстом.
Если вы хотите использовать это для нескольких файлов, просто создайте этот файл как.dotx (после вставки / размещения / форматирования CC и перед обновлением текста свойств документа). Затем каждый раз, когда вам нужно будет просто установить эти три свойства для каждого нового файла.
Ну, да, это оказалось возможным.
Sub autoopen()
Dim sKeywords As String
sKeywords = ActiveDocument.BuiltInDocumentProperties(4)
ActiveDocument.Bookmarks("foo").Select
Selection.Text = sKeywords
End Sub
Ладно, у меня есть кое-что заполнить, но, по крайней мере, его хватит.