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