powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / В ВБ6 добавить поле в Ворде
15 сообщений из 15, страница 1 из 1
В ВБ6 добавить поле в Ворде
    #37886158
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, делаю так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set ObjectWord = GetObject(, "Word.Application")
    Set ObjectOpenWord = ObjectWord.ActiveDocument
Const wdFieldFormTextInput = 70
     Const wdDateText = 2
    Dim ПолеFormTextInput As Object
                Set ПолеFormTextInput = ObjectOpenWord.FormFields.Add(Range:=ObjectOpenWord.Range, Type:= _
        wdFieldFormTextInput)
    ПолеFormTextInput.TextInput.EditType Type:=wdDateText
                ObjectOpenWord.Bookmarks(ПолеFormTextInput.Name).Delete
                'присваивание текстовому полю ..., значения ...
                ПолеFormTextInput.Result = "Формат_даты)"



на последней строке кода ошибка 4198 - Ошибка команды
как нужно??
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887603
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
последнюю строку сделал так:
Код: vbnet
1.
2.
  'Default - умолчание
                ПолеFormTextInput.Default = "Формат_даты)"


получил - объект не поддерживает свойство
подскажите пжл как нужно
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887613
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эндрю,

ну ты же назначил полю Тип: Дата (.EditType Type:=wdDateText), значит значение поля должно быть датой, иначе ошибка.
Код: vbnet
1.
ПолеFormTextInput.Result = Date
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887620
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский, я в шоколаде, тема коротка оказалась, всё понятно и доходчиво, спасибо!!!!!!!!
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887623
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиг там, не нахожу wdText, где оно и все остальные спрятались от меня?? жал Эф2 - не помогло, Эф1 жать боюсь
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887647
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно тупо
'
Код: vbnet
1.
2.
3.
4.
присвоть тип полю
            'ПолеFormTextInput.TextInput.EditType Type:=wdDateText
'присваивание текстовому полю ..., значения ...
                ПолеFormTextInput.Result = "Now"


но это ж не наш метод
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887659
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Угу, наш метод - это уже больше суток проблему создавать на пустом месте.
Запиши в Ворде магнитофоном создание нескольких полей, разного типа, со значениями по умолчанию - и все станет ясно.
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887666
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский, Вы же знаете что не всё можно магнитофоном записать ...
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887688
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знаю! Но в данном случае записывается все (Ворд 2000). Вот создание трех полей.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Sub Макрос2()
    Selection.FormFields.Add Range:=Selection.Range, Type:= _
        wdFieldFormTextInput
    Selection.TypeParagraph
    Selection.FormFields.Add Range:=Selection.Range, Type:= _
        wdFieldFormTextInput
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    With Selection.FormFields(1)
        .Name = "ТекстовоеПоле2"
        .EntryMacro = ""
        .ExitMacro = ""
        .Enabled = True
        .OwnHelp = False
        .HelpText = ""
        .OwnStatus = False
        .StatusText = ""
        With .TextInput
            .EditType Type:=wdDateText, Default:="1.1.2012", Format:=""
            .Width = 0
        End With
    End With
    Selection.EndKey Unit:=wdStory
    Selection.TypeParagraph
    Selection.FormFields.Add Range:=Selection.Range, Type:= _
        wdFieldFormTextInput
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    With Selection.FormFields(1)
        .Name = "ТекстовоеПоле3"
        .EntryMacro = ""
        .ExitMacro = ""
        .Enabled = True
        .OwnHelp = False
        .HelpText = ""
        .OwnStatus = False
        .StatusText = ""
        With .TextInput
            .EditType Type:=wdNumberText, Default:="57,00", Format:="0,00"
            .Width = 8
        End With
    End With
End Sub
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887769
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,
Начать запись - Текстовое поле, ну добавилось оно, а чтобы записать его параметры надо два раза щёлкнуть по нему мышью
во время записи макроса это не возможно, как Вы сделали?
есть в Эф1 варианты
Код: vbnet
1.
2.
3.
4.
5.
6.
 'тип поля Обычный текст
    Const wdRegularText = 0
    'тип поля Число
    Const wdNumberText = 1
    'тип поля Дата
    Const wdDateText = 2


А ещё есть:
Код: vbnet
1.
2.
3.
Const wdCurrentDateText = 3 
Const wdCurrentTimeText = 4 
Const wdCalculationText = 5


но получаю ошибка 4120 неверный параметр, ату его
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37887948
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Метод FormFields.Add возвращает объект FormField. Хватай его оператором Set или With.
Вот тот же код без использования Selection
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Sub Макрос2()
Dim r As Range, f
With ActiveDocument
    Set r = .Range
    r.EndOf wdStory, wdMove
    .FormFields.Add r, wdFieldFormTextInput 'просто вставка поля
    r.EndOf wdStory, wdMove
    r.InsertParagraphAfter
    r.EndOf wdStory, wdMove
    Set f = .FormFields.Add(r, wdFieldFormTextInput) 'сохранение ссылки на объект в переменной
    f.Name = "ТекстовоеПоле2"
    f.EntryMacro = ""
    f.ExitMacro = ""
    f.Enabled = True
    f.OwnHelp = False
    f.HelpText = ""
    f.OwnStatus = False
    f.StatusText = ""
    With f.TextInput
        .EditType Type:=wdDateText, Default:="1.1.2012", Format:=""
        .Width = 0
    End With
    r.EndOf wdStory, wdMove
    r.InsertParagraphAfter
    r.EndOf wdStory, wdMove
    With .FormFields.Add(r, wdFieldFormTextInput) 'использование объекта в операторе With
        .Name = "ТекстовоеПоле3"
        .EntryMacro = ""
        .ExitMacro = ""
        .Enabled = True
        .OwnHelp = False
        .HelpText = ""
        .OwnStatus = False
        .StatusText = ""
        With .TextInput
            .EditType Type:=wdNumberText, Default:="57,00", Format:="0,00"
            .Width = 8
        End With
    End With
End With
End Sub
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37888225
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский, я спрашивал код от 20 июля 2012 г. 23:25 как Вы сделали?
Нажать начать запись - как я знаю
Нажать Текстовое поле - как я знаю, добавилось оно
Чтобы записать его параметры надо два раза щёлкнуть по нему мышью
во время записи макроса два раза щёлкнуть по нему мышью это не возможно, как Вы сделали????????????
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37888227
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут ещё вылезло
'узнаю входяший макрос выделенного поля
ii = Selection.FormFields(1).EntryMacro
'номер выделенного поля
uu = Selection.Fields(1).Index
'узнаю входяший макрос выделенного поля обращаясь по его номеру, так как нужно знать входяший макрос не выделеного а следующего за выделенным полем
iii = ActiveDocument.FormFields(uu).EntryMacro
швах
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37888229
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда я нажал Shift+влево
Код: vbnet
1.
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend

и нажал кнопку "свойства" на панели "формы".
Оказывается, нажимать Shift+влево необязательно, можно сразу нажимать кнопку "свойства", Ворд понимает :)
Код: vbnet
1.
2.
3.
4.
5.
6.
    Selection.FormFields.Add Range:=Selection.Range, Type:= _
        wdFieldFormTextInput
    Selection.PreviousField.Select
    With Selection.FormFields(1)
        .Name = "ТекстовоеПоле2"
'и т.д.
...
Рейтинг: 0 / 0
В ВБ6 добавить поле в Ворде
    #37888300
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,
нажал кнопку "свойства" на панели "формы
Спасибо, не знал, избавляет от множества вопросов
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / В ВБ6 добавить поле в Ворде
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]