1

Тема: Выпадающий список в word 2007

Приветствую! Как сделать список я понял: http://wordexpert.ru/page/kak-vstavit-v … so-spiskom
А вот как это дело усовершенствовать: мне надо что бы в списке были значения (или некий текст), но выводился не он, а связанные с ними предложения. Т.е например в списке
0
1
2
3

Если выбрать из списка 1 то должен вывести текст Привет, как дела?
Если выбрать 2 - Пока!
3 - еще какое-то предложение.

Притом надо, что бы выводились именно предложения (длинные) и возможно даже несколько предложений. Может брать их из файла или как-то?!

Такое вообще реально сделать?

Отредактировано Route (21.07.2010 22:57:18)

2

Re: Выпадающий список в word 2007

Да такое сделать реально, но только с помощью макроса. Можно хоть брать зараннее заданные фразы, хоть читать из другого текстового файла. Для этого в свойствах поля нужно указать макрос, который выполняется при выходе из поля. А в самом этом макросе анализировать выбранный элемент поля и вставлять соответствующий текст.

Лучше день потерять — потом за пять минут долететь!

3

Re: Выпадающий список в word 2007

А не дадите примерчик ? Пожалуйста  smile

4

Re: Выпадающий список в word 2007

К Вашему счастью, я нашёл код, который делал на заказ 10 дней назад. Поскольку заказчик остался доволен, могу опубликовать код здесь:

Option Explicit
'Имя поля со списком. Менять только здесь
Private Const sDropDownName As String = "ПолеСоСписком1"
'Заголовок окна сообщений
Private Const sDialogTitle As String = "Вставка текста при выборе из списка"

Public Sub InsertCorrespondentText()
  
  Dim n As Integer 'Порядковый номер выбранного элемента списка
  Dim sText As String 'Текст, который должен вставляться в документ
  Dim opar As Paragraph 'Абзац, в котором находится список
  
  With ActiveDocument
    With .Bookmarks
      If .Exists(sDropDownName) Then
        If .Item(sDropDownName).Range.FormFields(1).DropDown.Valid Then
          n = .Item(sDropDownName).Range.FormFields(1).DropDown.Value
          Set opar = .Item(sDropDownName).Range.Paragraphs.Last
        Else: Exit Sub
        End If
      Else: Exit Sub
      End If
    End With
    
    If Len(.BuiltInDocumentProperties("Comments")) <> 0 Then
      sText = Split(.BuiltInDocumentProperties("Comments"), vbLf)(n - 1)
    Else
      MsgBox "В документе не заполнено свойство ""Комментарии""!", vbInformation + vbOKOnly, sDialogTitle
      Exit Sub
    End If
    
    'Защита снимается, вносятся изменения и защита ставится вновь
    If .ProtectionType = wdAllowOnlyFormFields Then
      'В кавычках необходимо прописать пароль для снятия защиты, если он есть
      .Unprotect ""
      'Текст абзаца, следующего за списком изменяется на соответствующий текст
      opar.Next.Range.Text = sText & vbCr
      'Ставим защиту назад. Если необходимо, то в кавычках нужно указать пароль
      .Protect wdAllowOnlyFormFields, , ""
    End If
    
  End With
  
End Sub

Текст для вставки берётся из свойства "Комментарий" построчно в зависимости от номера выбранного элемента списка.

Лучше день потерять — потом за пять минут долететь!

5

Re: Выпадающий список в word 2007

Эх! Так и не смог воспользоваться этим макросом. Что за свойства "Комментарий", куда что вставить так и не понял. Если будет свободное время и желание вышлите пример пожалуйста...

6

Re: Выпадающий список в word 2007

Как же так? "Комментарий" можно изменить либо через свойства файла в проводнике, на вкладке "Сводка" или в самом Word: Office→Подготовить→Свойства
"Комментарий" может быть многострочным. Каждая строка соответствует элементу списка, т.е. если в списке 5 пунктов, то в "Комментарии" должно быть 5 строк

Лучше день потерять — потом за пять минут долететь!

7

Re: Выпадающий список в word 2007

Чувствую себя совсем тупым smile Не могу я найти такого. вообще не понимаю о чем идет речь. Лан извините за тупость мою smile Abu с ним.

8

Re: Выпадающий список в word 2007

Ещё раз: кнопка Office→Подготовить→Свойства
И заполнить свойство "Примечание":
Выпадающий список в word 2007

Я немного запутал тебя, назвав это свойство "Комментарий", но именно так оно названо в свойствах документа, которые вызываются нажатием Alt+Enter на имени файла в проводнике (документ должен быть закрыт):
Выпадающий список в word 2007

Лучше день потерять — потом за пять минут долететь!

9

Re: Выпадающий список в word 2007

viter.alex, я так ничего и не смог сделать! Туповат наверное в этом деле smile Может кто-нибудь скинуть пример с таким выпадающим списком? Мне бы очень облегчило это жизнь. Пожалуйста, помогите.

10

Re: Выпадающий список в word 2007

Здравствуйте!

viter.alex, я так ничего и не смог сделать! Туповат наверное в этом деле

Не отчаивайтесь, я тоже бьюсь над этими drop down ни фига не выходит!
Блин программа на простого пользователя расчитана.... yikes
На изнанку выворачиваться приходится....Короче как я заметил Александр поменял
местоположение, Харькiв на Монреаль!
Замена достойная, но  вероятнее всего ему пока не до нас, наберитесь терпения....
Пока он от кленового сиропа оторвётся.... big_smile  tongue  lol
С уважением

Stupid is as stupid does!