Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2013, 12:37   #1
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию "Условная компиляция" в ворде

Хочется иметь способ включать/исключать некоторые фрагменты из документа, например, в зависимости от значения переменной в документе.
В ворде есть возможность вставить поле { IF Выражение1 Оператор Выражение2 Текст1 Текст2 }
Из документации Microsoft:
Цитата:
Каждое выражение может быть значением поля слияния, именем закладки, строкой символов, числом, вложенным полем, возвращающим значение, либо математической формулой.
Примеров там крайне мало, прошу помочь разобраться. Как указать название закладки или переменной? И как вложить поле в другое поле?
cw_o вне форума Ответить с цитированием
Старый 02.04.2013, 14:59   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

cw_o, вместо фразы "условная компиляция" в вашем случае больше подходит просто слово "условие".

Последний раз редактировалось Скрипт; 02.04.2013 в 21:06.
Скрипт вне форума Ответить с цитированием
Старый 02.04.2013, 15:14   #3
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Да, это аналогия с программированием. В общем, суть в том, что по результатам вычисления значения поля фрагмент текста либо отображается в документе, либо нет.
С темой, кстати, я сама разобралась. Например, в документе есть переменная Var. Если Var="value", то текст будет отображен, иначе нет. Вставляем поле IF с таким текстом:
Код:
{IF "{DOCVARIABLE Var}"="value" "Текст 1" }
cw_o вне форума Ответить с цитированием
Старый 02.04.2013, 15:23   #4
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

Можно и не заключать второе поле в кавычки:
Код:
{IF {DOCVARIABLE Var} = "value" "Текст 1" }
Вообще, в кавычки заключается только текст. По идее ваш пример в сообщении #3 вообще не должен работать.

Последний раз редактировалось Скрипт; 02.04.2013 в 21:17.
Скрипт вне форума Ответить с цитированием
Старый 03.04.2013, 11:20   #5
cw_o
Пользователь
 
Регистрация: 25.10.2009
Сообщений: 92
По умолчанию

Согласна, кавычки не нужны. Но и с кавычками работало.
cw_o вне форума Ответить с цитированием
Старый 03.04.2013, 18:09   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

cw_o, а как эту Var зашить в документ? Я такую же хочу!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 05.04.2013, 14:00   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

задача века решается
Код:
ActiveDocument.Variables.Add Name:="value", Value:="Текст 1"
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") funnyy Помощь студентам 3 17.10.2012 17:40
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
VS2008: "Binary was not built with debug informat": Компиляция vncviewer.exe ( из TightVNC ) malor Visual C++ 1 14.06.2011 09:30
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04