Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/103: Рейтинг темы: голосов - 103, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45

TextBox VB Word 2007

22.03.2011, 14:08. Показов 20897. Ответов 94
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Подскажите пожалуйста я создала пользовательскую форму в которой есть TextBox и присвоила переменной текстовое значение из него:
strFIOText = TextBox1.Text

А вот как теперь вставить текск из переменной strFIOText в документ? И желательно задать поле для вставки так как данную переменную нужно вставить в 5-6 документов =(

У меня Microsoft Office Word 2007.

С уважением!

Добавлено через 44 минуты
Нашла такое:

создаю поле в документе в В окне "Параменты текстового поля" -> "Параменты поля/Закладка:" ввожу MyTextField1 -> ОК

в VBA прописываю:
ThisDocument.FormFields.Item("MyTextFiel d1").Range.Text = TextBox1.Text

Но после запуска выдает ошибку 5941 =( и открывает отладчик, его закрываю крестиком и в поле присутствует мое значение.

Как подправить что бы ошибки не возникало?

Добавлено через 15 минут
Всем огромное спасибо!

Заменила:
ThisDocument.FormFields.Item("MyTextFiel d1").Range.Text = TextBox1.Text
на
ThisDocument.FormFields.Item("MyTextFiel d1").Result = TextBox1.Text и ошибка пропала =)

Но возник сразу другой вопрос как заменить сразу в двух документах данное поле?

Пример в двух документах ворд 2007 имеем ФИО с помощью пользовательской формы нужно заменить ФИО в двух - семи документах и сохранить их.

Добавлено через 51 минуту
подскажите как можно обратиться к другому документу?

То есть внести изменение не в текущий документ а в тот который открываем макросом
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2011, 14:08
Ответы с готовыми решениями:

Макрос в Word 2007
Нужна ваша помощ по созданию макроса!!! 1) Удаление лишних пробелов. 2) Удаление лишних знаков абзацев. 3) Выравнивание по ширине. ...

Апостроф " в Word 2007
Пытаюсь заменить в документе символ ~ на ". Всегда работал код WordBasic.EditReplace Find:="~", Replace:=Chr(34),...

Ширина таблицы в WORD 2007
При проходе по таблицам ворда With Selection.Tables(1) .PreferredWidthType = 2 'wdPreferredWidthPercent ...

94
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
25.03.2011, 16:59  [ТС]
Студворк — интернет-сервис помощи студентам
Universal Document Converter на этом нажми
или по другому http://files.mail.ru/D5FQI9
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
25.03.2011, 17:08
и прописать штук 60 закладок по типу:
На какой объём это столько закладок?
Если на одну страницу, то может лучше отказаться от закладок в пользу таблиц?
Отформатировать таблицу и текст в них как надо. А вместо закладок использовать ячейки.
Лично у меня возникали проблемы в том, что вставляемый текст, из-за того, что мог иметь разную длину, вызывал смещение всего остального текста, вплоть до переноса картинок на другой лист.
А при применении таблиц получилось лучше.
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
25.03.2011, 17:23  [ТС]
Текст в документе примерно такой


По заказу Петров К. Е., выполнена топографическая съемка масштаба 1:1000, с сечением рельефа 0,5 метра на площади 48,4 га.
Работы выполнялись в соответствии с программой изысканий, разработанной на основе письма заказчика Петров К. Е.
Ранее на участке топографо-геодезические изыскания масштаба 1: 1 000 не проводились. На участке имеется выкопировка из генерального плана масштаба 1: 10 000.
потом идет таблица с площадью указанием масштаба , сечения и т.д.
Топографическая съемка участка в масштабе 1:1000 с сечением рельефа
0,5 м га 48,4
Чистовое вычерчивание топографического плана масштаба 1:1000 с сечением рельефа 0,5 метра дм кв. 48,4
и т.д.

И вот на ФИО у меня уходит две закладки, на масштаб "1000" 4 закладки, на площадь 5 закладок и все это на одном листе.

в следующем документе опять куча масштабов и площадей с ФИО и т.д.
А заполнять приходиться по 5-7 отчетов в день каждый содержит по 17 документов начиная от ворд, эксель, автокад, кредо так что хоть бы ворд упростить и повесить все его файлы на одну форму. =)
а еще половину их нужно сохранить в *.doc а вторую половину *.jpeg

Я не профи в VBA и для меня и такое то подвиг уже =))))
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
25.03.2011, 17:33
Вариантов море:
ФИО у меня уходит две закладки, на масштаб "1000" 4 закладки, на площадь 5 закладок
В том числе в имени файла это внести, Финдом искать по файлу
и т. д.
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
25.03.2011, 17:38  [ТС]
финдом искать не вариант так как в документе меняются до 20 значений и на каждое создавать свой поиск то работа макроса будет происходить минут 10 а еще каждый документ открыть и сохранить и т.д. Закладками быстрее происходит.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
25.03.2011, 17:45
Если бы это был один документ, то с таблицей было бы(для меня)проще.
Но если документов много, а данные похожие, то наверно логичнее было бы создавать закладки ассоциативно связанные с их значениями. А в случае отсутствия - обрабатывать ошибки.
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
26.03.2011, 14:29
В тоже время Вы документы открываете как объекты, ничего сложного там искать закладки, только уже не ActiveDocument а согласно имени объекта

Добавлено через 20 часов 36 минут
Всё, установил, разобрался в конвертации файлов при помощи ВБА, не понял в чём причина файл ПДФ открываешь, что то выделил и вставил в Ворд как предложение, в этом конвертированном файле почему вставляется как изображение, почему?
Синкела, или кто другой, можете закомментировать строки кода, чтобы было ещё понятней??
Плохо, что макрос заканчивает работу не по окончанию самой конвертации документа Ворд, просто висит прогресс конвертации, хотя с другой стороны это и хорошо, не мешает другие дела делать

Код:
PureBasic
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
Sub PrintWordToPDF()
 
 'конвертирование документов Word в PDF
 'Universal Document Converter 5.2 и выше должен быть установлен
 'подключаем библиотеку UDC 5.1 Type Library
 
 'имя с расширением и местом расположения конвертируемого файла Word
  strFilePath = "L:\Щербаков.doc"
  Dim objUDC As IUDC
  Dim itfPrinter As IUDCPrinter
  Dim itfProfile As IProfile
 
  Dim WordApp As Object
  Dim WordDoc As Object
 
  Set objUDC = New UDC.APIWrapper
  Set itfPrinter = objUDC.Printers("Universal Document Converter")
  Set itfProfile = itfPrinter.profile
 
' Use Universal Document Converter API to change settings of converterd document
  itfProfile.PageSetup.ResolutionX = 600
  itfProfile.PageSetup.ResolutionY = 600
 
  itfProfile.FileFormat.ActualFormat = FMT_PDF
 
  itfProfile.FileFormat.PDF.ColorSpace = CS_TRUECOLOR
  itfProfile.FileFormat.PDF.MultiPage = MM_MULTI
 
  itfProfile.OutputLocation.Mode = LM_PREDEFINED
  'Output - выход, создаёт папку с именем ... по адресу ...
  itfProfile.OutputLocation.FolderPath = "C:\Out"
  'имя файла в PDF 
  itfProfile.OutputLocation.fileName = "&[DocName(0)] -- &[Date(0)] -- &[Time(0)].&[ImageType]"
  itfProfile.OutputLocation.OverwriteExistingFile = False
 
' Run Microsoft Word as COM-server
  On Error Resume Next
  Set WordApp = CreateObject("Word.Application")
 
' Open document from file
  Err = 0 ' Clear GetLastError() value
  Set WordDoc = WordApp.Documents.Open(strFilePath, , 1)
 
  If Err = 0 Then
 
  ' Print all pages of the document
    WordApp.ActivePrinter = "Universal Document Converter"
    Call WordApp.PrintOut(False)
 
  ' Close the document
    Call WordDoc.Close
    Set WordDoc = Nothing
 
  End If
 
' Close Microsoft Word
  Call WordApp.Quit
  Set WordApp = Nothing
 
End Sub
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 10:04  [ТС]
Даже не знаю что сказать =( у меня видно криво встает и это библиотеку UDC 5.1 Type Library не подключается =(

Добавлено через 30 минут
Ай =( снова застряла =(

Подскажите вот я делаю цикл и объявив переменные:
file1 = "4"
File2 = "паспорт"
застряла на определении имени переменной:
file = file & a ( она показывает что равна "1", а после цикла равна "2")
а мне то нужно что бы она ее воспринимала как file = file1
А так он просит 1.doc , 2.doc документы а у меня имена другие и переименовать файлы не могу =(
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Макрос3()
 
i = 0
a = 1
file1 = "4"
File2 = "паспорт"
file = file & a
For i = 1 To 3
i = i + 1
a = a + 1
Set WordApp = New Word.Application 'создаём  новый экземпляр Word-a
WordApp.Visible = True 'определяем видимость Word-a где True - видимый, а False - не видимый (работает только ядро)
'Set DocWord = WordApp.Documents.Add 'создаём новый документ в Word-e
Set DocWord = WordApp.Documents.Open("D:\Distrib\otchet\" & file & ".doc") 'если нужно открыть имеющийся документ, то пишем такой код
DocWord.Close True 'закрываем документ без сохранения
WordApp.Quit True 'закрываем word
Next i
 
End Sub
Добавлено через 2 минуты
если пишу file = "file" & a то он ее воспринимает как file1, но как текст а не как переменную
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
29.03.2011, 10:06
потому, что не объявлены явно переменные
Option Explicit выручает, подсказывает
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 10:10  [ТС]
Dim file, file1, file2 As String

это не помогло =( как их объявить?
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
29.03.2011, 10:13
я не спорю возможно и не в этом проблема, но лучше будет если вместо
Dim file, file1, file2 As String

Dim file As String
Dim file1 As String
Dim file2 As String

Длина кода - ерунда, головняки уменьшаются
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 10:22  [ТС]
Да я и не стремлюсь сократить но он все равно упорно открывает 1.doc =( вместо нужного файла =(

Добавлено через 4 минуты
на сколько я понимаю засада у меня в том что file1 не равна "file1" а вот как убрать кавычки?

Добавлено через 1 минуту
с кавычками если я так делаю file = "file" & a
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
29.03.2011, 10:31
почему:
i = 0
затем
For i = 1 To 3
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 10:36  [ТС]
да это мелочь главное что даже убрав цикл он не открывает то что мне нужно =( (а там ошиблась i=1)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Макрос3()
Dim file As String
Dim file1 As String
Dim file2 As String
Dim a As Integer
a = 1
file = "file"
file = file & a
file1 = "4"
file2 = "паспорт"
Set WordApp = New Word.Application 'создаём  новый экземпляр Word-a
WordApp.Visible = True 'определяем видимость Word-a где True - видимый, а False - не видимый (работает только ядро)
Set DocWord = WordApp.Documents.Open("D:\Distrib\otchet\" & file & ".doc") 'если нужно открыть имеющийся документ, то пишем такой код
End Sub
Добавлено через 1 минуту
уже и так пробовала Open("D:\Distrib\otchet\" & "file" & a & ".doc") просит файл теперь file1.doc
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
29.03.2011, 10:40
1
вместо
file = "file"
file = file & a
лучше
file = "file" & a
Не мучились бы вместо
Set DocWord = WordApp.Documents.Open("D:\Distrib\otche t\" & file & ".doc")
это
Set DocWord = WordApp.Documents.Open(Нужный_файл)
и переменную Нужный_файл в неё и формируйте и тогда бы поняли
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 10:54  [ТС]
как не напиши результат то все равно один и тот же:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Макрос3()
Dim file As String
Dim file1 As String
Dim Нужный_файл As String
Dim a As Integer
a = 1
file1 = "паспорт"
file = "file" & a
Нужный_файл = "D:\Distrib\otchet\" & file & ".doc"
Set WordApp = New Word.Application 'создаём  новый экземпляр Word-a
WordApp.Visible = True 'определяем видимость Word-a где True - видимый, а False - не видимый (работает только ядро)
Set DocWord = WordApp.Documents.Open(Нужный_файл) 'если нужно открыть имеющийся документ, то пишем такой код
End Sub
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
29.03.2011, 10:58
зачем это??
Цитата Сообщение от Синкела Посмотреть сообщение
file1 = "паспорт"
В переменную Нужный_файл что попадает? а что нужно??
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 11:19  [ТС]
В переменную Нужный_файл попадает D:\Distrib\otchet\file1.doc
а нужно D:\Distrib\otchet\паспорт.doc

из за того что file = "file" & a выдает "file1" (в кавычках)
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
29.03.2011, 11:22
Цитата Сообщение от Синкела Посмотреть сообщение
Нужный_файл = "D:\Distrib\otchet\" & file & ".doc"
А так
Нужный_файл = "D:\Distrib\otchet\" & file1 & ".doc"
ПАСПОРТ???
0
1 / 1 / 0
Регистрация: 22.03.2011
Сообщений: 45
29.03.2011, 11:26  [ТС]
Да если Нужный_файл = "D:\Distrib\otchet\" & file1 & ".doc"
то открывается файл паспорт.doc
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2011, 11:26

Word VBA 2007 Фоновая форма
Доброго времени суток. Проблема: Нужно сделать форму, которая бы не занимала MS Word 2007, а просто висела внизу (как бы в отдельном...

Word 2007: Удалить строки в ячейке таблицы
Здравствуйте, как можно средствами VBA удалить во втором столбце таблицы строки, оставив только две, в начале каждой ячейки.

Word 2007: Как заменить количество пробелов по условию
Добрый день, как с помощью макроса заменить все пробелы число которых больше трех но меньше десяти, допустим на 10 пробелов?

Изменить обтекание всех картинок в документе word 2007
Собственно, быть может, кому-то известно, как его массово сменить на "вокруг рамки"? Нашел это, но так и не понял, как сделать...

Создание макроса по поиску и замене текста в Word 2007
Помогите пожалуйста написать макрос, который будет в тексте, состоящем из статей, имеющих постоянную «шапку». Например Никто не может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru