Использование VBA в MS Word 2007 для определения элементов страницы? - PullRequest
2 голосов
/ 29 января 2010

Я хотел бы иметь возможность создать элемент страницы, на который я могу подать текст, и он превратится в предпочтительный макет. Например:

{MACRO DocumentIntro("Introduction to Business Studies", "FP015", "Teachers' Guide")}

с этим полем, выходной файл должен быть строкой, первые две строки определенного размера и шрифта, центрированные, другая строка, а затем третья строка с шрифтом, размером и центром.

Я знаю, что это похоже на TeX и, возможно, выходит за рамки VBA, но если кто-нибудь знает, как это возможно, скажите, пожалуйста!

EDIT

Хорошо, если я добавлю требуемую информацию в ключевое слово, как часть свойств документа, с каким-то уникальным разделителем, тогда он получит эту информацию, и информация будет уникальной для каждого документа. Следующий помещает закладку, где материал будет отображаться. Затем создается макрос AutoOpen, который переходит к этой закладке, извлекает релевантные слова из ключевых слов и соответствующим образом формирует текст в закладке .Selection.

Это возможно?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2010

Вы, безусловно, находитесь на правильном пути для решения проблемы кодирования. Однако существует более простой способ без кода - это тип сценария, для которого были созданы элементы управления содержимым в Word 2007, а с помощью полей / свойств можно привязать элементы управления содержимым (CC). Эти CC могут содержать стили (например, по центру, жирный и т. Д.). VBA не требуется.

Самое простое, что нужно сделать - это выбрать 3 встроенных свойства документа, которые вы всегда захотите. Например, «Заголовок» может быть вашей первой строкой, «Тема» - вашей второй строкой, а «Ключевые слова» - третьей. Затем просто перейдите на ленту Вставить , Быстрые детали , Свойства документа и вставьте, разместите и отформатируйте их так, как вам нравится. Затем перейдите к кнопке «Пуск» Word («Сфера») и затем в разделе Подготовка выберите Свойства . Здесь вы можете ввести, например, « Введение в бизнес-исследования », в поле Title , а затем просто отменить его выбор (например, щелкнуть в другом поле). Контент Контент для Заголовок будет автоматически заполнен вашим текстом.

Если вы хотите использовать это для нескольких файлов, просто создайте этот файл как .dotx (после вставки / размещения / форматирования CC и перед обновлением текста свойств документа). Затем каждый раз, когда вам нужно будет установить эти три свойства для каждого нового файла.

1 голос
/ 31 января 2010

Ну, да, это оказалось возможным.

Sub autoopen()
    Dim sKeywords As String
    sKeywords = ActiveDocument.BuiltInDocumentProperties(4)
    ActiveDocument.Bookmarks("foo").Select
    Selection.Text = sKeywords
End Sub

Хорошо, у меня есть кое-что заполнить, но, по крайней мере, его хватит.

...