Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/30: Рейтинг темы: голосов - 30, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 30.07.2007
Сообщений: 44

Вставка текста в Word

13.03.2011, 08:20. Показов 5962. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, как в готовый документ Word вставлять в определенные места из VB-программы текст.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2011, 08:20
Ответы с готовыми решениями:

Вставка в WORD картинки
Привет. При формировании вордовских отчетов из VB я активно использую конструкции типа Dim objWord As Word.Application ...

Вставка рисунка в Word
Здравствуйте, товарищи программисты! Подскажите, пожалуйста, средства, которыми можно осуществить вставку картинки в документ Word....

Вставка рисунка из файла в Word-таблицу
Имеется таблица в Word-e Нужно вставить рисунок (*.bmp) в определенную ячейку таблицы. Как это сделать ? Я пишу: ...

8
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
13.03.2011, 13:19
Лучший способ узнать, как что-либо делается программно - записать макрос, содержащий необходимые действия и посмотреть на исходный текст этого макроса. Желаю успехов.
0
0 / 0 / 0
Регистрация: 30.07.2007
Сообщений: 44
14.03.2011, 13:01  [ТС]
У меня есть готовый текст набранный в Word (например договор). Неподскажите как вставить в определенные места этого текста, скажем например фамилию имя отчества из моей VB программы.
0
Сумрак
15.03.2011, 11:57
Доброго времени суток...
У меня есть рабочая программа, заключение договоров кредита. с сохранением в БД необходимых данных. Прога простенькая(для жены писал на работу), так там основное - это WORD (шаблон договора).
Использую закладки, пользователи могут использовать только те закладки которые прописаны. В остальном они вольны менять шаблон договора. Если что будет интересно пишите. Просто, не доконца понимаю вопроса. Использую Шаблон Ворд(в нем закладки, проверяю закладки если есть такая то вставлю информацию). Вобщем пишите
Сумрак
15.03.2011, 16:23
хех.. удалил все.. не поймешь.. на весь модуль...
Уточнение.. я его писал много лет назад... щас могу сделать все по коректней... но это работает...
Visual Basic
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
Option Explicit
Dim DIC As Scripting.Dictionary
Private mvarНомерСделки As Long 'local copy
Private mvarНаценка As Double 'local copy
Private mvarПериод As Integer 'local copy
Private mvarДата As String 'local copy
Private mvarДатаВыплат As Date 'local copy
Private mvarМагазин As String 'local copy
Private mvarГород As String 'local copy
Private mvarИмяПок As String 'local copy
Private mvarДокПок As String 'local copy
Private mvarПропПок As String 'local copy
Private mvarАдресПок As String 'local copy
Private mvarИмяПор As String 'local copy
Private mvarДокПор As String 'local copy
Private mvarПропПор As String 'local copy
Private mvarАдресПор As String 'local copy
Private mvarДокумент As Object 'local copy
Private mvarПерВзносПроц As Integer 'local copy
Private mvarКОП As Integer 'local copy
 
Public Товар As колТовар
 
'это общие по документу
 
Public Property Set Документ(ByVal vData As Object)
    Set mvarДокумент = vData
End Property
 
Public Property Get Документ() As Object
    Set Документ = mvarДокумент
End Property
 
Public Property Let Город(ByVal vData As String)
    mvarГород = vData
End Property
 
Public Property Get Город() As String
    Город = mvarГород
End Property
 
Public Property Let Дата(ByVal vData As String)
    mvarДата = vData
End Property
 
Public Property Get Дата() As String
    Дата = mvarДата
End Property
 
Public Property Let Магазин(ByVal vData As String)
    mvarМагазин = vData
End Property
 
Public Property Get Магазин() As String
    Магазин = mvarМагазин
End Property
 
Public Property Let КОП(ByVal vData As Integer)
    mvarКОП = vData
End Property
 
Public Property Get КОП() As Integer
    КОП = mvarКОП
End Property
 
Public Property Let НомерСделки(ByVal vData As Long)
    mvarНомерСделки = vData
End Property
 
Public Property Get НомерСделки() As Long
    НомерСделки = mvarНомерСделки
End Property
 
'Это общие по Клиентам, покупатель и поручитель
 
Public Property Let ИмяПок(ByVal vData As String)
    mvarИмяПок = vData
End Property
 
Public Property Get ИмяПок() As String
    ИмяПок = mvarИмяПок
End Property
 
Public Property Get КрИмяПок() As String
    КрИмяПок = ФИО(ИмяПок)
End Property
 
Public Property Get КрИмяПор() As String
    КрИмяПор = ФИО(ИмяПор)
End Property
 
Public Property Let ДокПок(ByVal vData As String)
    mvarДокПок = vData
End Property
 
Public Property Get ДокПок() As String
    ДокПок = mvarДокПок
End Property
 
Public Property Let ПропПок(ByVal vData As String)
    mvarПропПок = vData
End Property
 
Public Property Get ПропПок() As String
    ПропПок = mvarПропПок
End Property
 
Public Property Let АдресПок(ByVal vData As String)
    mvarАдресПок = vData
End Property
 
Public Property Get АдресПок() As String
    АдресПок = mvarАдресПок
End Property
 
Public Property Let ИмяПор(ByVal vData As String)
    mvarИмяПор = vData
End Property
 
Public Property Get ИмяПор() As String
    ИмяПор = mvarИмяПор
End Property
 
Public Property Let ДокПор(ByVal vData As String)
    mvarДокПор = vData
End Property
 
Public Property Get ДокПор() As String
    ДокПор = mvarДокПор
End Property
 
Public Property Let ПропПор(ByVal vData As String)
    mvarПропПор = vData
End Property
 
Public Property Get ПропПор() As String
    ПропПор = mvarПропПор
End Property
 
Public Property Let АдресПор(ByVal vData As String)
    mvarАдресПор = vData
End Property
 
Public Property Get АдресП    риод1', Item:=ПериодПроп
    DIC.Add Key:='Период2', Item:=ПериодПроп
    DIC.Add Key:='ПолноеИмяПокупателя1', Item:=ИмяПок
    DIC.Add Key:='ПолноеИмяПокупателя2', Item:=ИмяПок
    DIC.Add Key:='ПолноеИмяПокупателя3', Item:=ИмяПок
    DIC.Add Key:='ПолноеИмяПоручителя1', Item:=ИмяПор
    DIC.Add Key:='ПолноеИмяПоручителя2', Item:=ИмяПор
    DIC.Add Key:='ПропискаПокупателя1', Item:=ПропПок
    DIC.Add Key:='ПропискаПоручителя1', Item:=ПропПор
    mKey = DIC.Keys
    Dim i As Integer
    For i = 0 To UBound(mKey)
    
    
        If Документ.Bookmarks.Exists(mKey(i)) Then 'Усли есть такая закладка, то печать в нее свойство класса значение статьи словаря
            If mKey(i) = 'НаценкаПроц1' Then
                If Наценка = 0 Then
                    Документ.Bookmarks(mKey(i)).Range.Text = '1 руб.'
                Else
                    Документ.Bookmarks(mKey(i)).Range.Text = DIC.Item(mKey(i)) & '%'
                End If
            Else
                Документ.Bookmarks(mKey(i)).Range.Text = DIC.Item(mKey(i))
            End If
        End If
        
        
    Next i
    For i = 1 To Товар.Count
        Документ.Tables(1).Rows.Add
        Документ.Tables(1).Cell(i + 1, 1).Range.Text = i
        Документ.Tables(1).Cell(i + 1, 2).Range.Text = Товар.Item(i).Наименование
        Документ.Tables(1).Cell(i + 1, 3).Range.Text = Товар.Item(i).КолВо
        Документ.Tables(1).Cell(i + 1, 4).Range.Text = ФорматЧисел(Товар.Item(i).Цена)
        Документ.Tables(1).Cell(i + 1, 5).Range.Text = ФорматЧисел(Товар.Item(i).Сумма)
    Next i
        Документ.Tables(1).Rows.Add
        Документ.Tables(1).Rows(i + 1).Borders.Enable = False
        Документ.Tables(1).Rows(i).Borders.Enable = True
        Документ.Tables(1).Cell(i + 1, 5).Range.Borders.Enable = True
        Документ.Tables(1).Cell(i + 1, 5).Range.Font.Bold = True
        Документ.Tables(1).Cell(i + 1, 5).Range.Text = ФорматЧисел(СуммаТовара)
        
    Dim N As Double
    Dim OS As Double
        If Наценка = 0 Then
            OS = Round((СуммаТовара + 1) - (СуммаТовара / 100 * ПерВзносПроц), КОП)
        Else
            OS = Round((СуммаТовара + СуммаТовара / 100 * Наценка) - (СуммаТовара / 100 * ПерВзносПроц), КОП)
        End If
    N = Round((OS / Период)  10, 1) * 10
    For i = 1 To Период
        Документ.Tables(2).Rows.Add
        Документ.Tables(2).Cell(i + 1, 1).Range.Text = i + 1
        Документ.Tables(2).Cell(i + 1, 2).Range.Text = DateAdd('m', i, ДатаВыплат)
            If i <> Период Then
                Документ.Tables(2).Cell(i + 1, 3).Range.Text = ФорматЧисел(N)
                OS = OS - N
            Else
                Документ.Tables(2).Cell(i + 1, 3).Range.Text = ФорматЧисел(OS)
            End If
    Next i
Set DIC = Nothing
Exit Sub
bay:
ЛогФайл CStr(Err.Number & ' - ' & Err.Description & ' - [печать.печатьDic]')
Set DIC = Nothing
End Sub
 
Private Function ФорматЧисел(mVar As Variant) As Variant
On Error Resume Next
ФорматЧисел = mVar
If IsEmpty(mVar) = False Then
    Dim curN As Double
        curN = CDbl(mVar)
    ФорматЧисел = Replace(Trim(CStr(FormatNumber(curN, 2))), Chr(ЗнакРазделенияСист()), ' - ', 1, 1)
Else
    ФорматЧисел = mVar
End If
End Function
 
Private Function ЗнакРазделенияСист() As Integer
Dim N As Double, str As String
    N = 123.2
    str = Mid(CStr(N), 4, 1)
    ЗнакРазделенияСист = Asc(str)
End Function
 
Private Function ФИО(str As String) As String
On Error GoTo bay
Dim str2 As String
Dim mVar1 As Variant
Dim str3 As String, str4 As String
Dim i As Integer
    If IsEmpty(str)     t;, 'восемьдесят', 'девяносто')
                End If
            End If
            If Not (all) Then
                dig = A(i) Mod 10
                If dig = 0 Then
                    all = True
                ElseIf (i = 2) And (dig <= 2) Then
                    sBuf = sBuf & SP & Choose(dig, 'одна тысяча', 'две тысячи')
                    all = False
                Else
                    sBuf = sBuf & SP & vDigit(dig - 1)
                    Select Case dig
                    Case 1
                        vEnd = vTriad(0)
                    Case 2 To 4
                        vEnd = vTriad(1)
                    Case Else
                        vEnd = vTriad(2)
                    End Select
                    If Руб Then
                        sBuf = sBuf & SP & vEnd(i - 1)
                    Else
                        If i <> 1 Then
                            sBuf = sBuf & SP & vEnd(i - 1)
                        End If
                    End If
 
                    all = False
                End If
            End If
        Else
            all = False
        End If
        
        If all Then
        If Руб Then
            vEnd = vTriad(2)
            sBuf = sBuf & SP & vEnd(i - 1)
        End If
            all = False
        End If
    Next i
    If Руб Then
        If A(1) = 0 Then sBuf = sBuf & SP & 'рублей'
    End If
    sBuf = Trim(sBuf)
    Mid(sBuf, 1) = UCase(Left(sBuf, 1))
    If Руб Then
        If sCop <> '' Then sBuf = sBuf & SP & sCop & SP & 'коп.'
    End If
    Пропись = sBuf
Exit Function
bay:
ЛогФайл CStr(Err.Number & ' - ' & Err.Description & ' - [печать.пропись]')
    Пропись = 'Ошибка преобразования'
End Function
Еще раз извиняюсь за код(это модуль классов) щас я могу его раза в два уменьшить. Я тогда молодым был.
Сумрак
15.03.2011, 16:29
Извини код большой, и сразу не сообразишь....Он запутанный слегка... но главное в середине.. В конце - функция 'пропись' находится.... тоже работает, переводит цыфру в буквы. Задавай лучше вопросы.. А то у меня вся прога на модулях и классах... Но с поправкой что она старая, я опытней стал... :-)
Сумрак
15.03.2011, 16:31
Public Sub ПечатьDic()
Смотри от сюда, перд етим класс
Сумрак
15.03.2011, 16:40
Вся уловка в том что, я присудил значение ключевых Закладок(Имя в Шалоне Ворд)ключам в созданом словаре, и т.к. закладки тоже индивидульны. то конфликта нет. А потом прописал значения.
В Цыкле если есть такая закладка(имя ключа) то получи результат, если нет то пропуск...Но еще раз скажу, что тогда я был молодым програмистом....Щас можно найти решение и с меньшим кодом.Но проблемма с передачей кода останется.Вся проблема ..как передать все в Ворд, который могут изменять все комуне лень... :-)
0 / 0 / 0
Регистрация: 30.07.2007
Сообщений: 44
15.03.2011, 23:48  [ТС]
Большое спасибо за помощь. Буду разбираться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2011, 23:48
Помогаю со студенческими работами здесь

Word: вставка объектов и управление их положением и размерами
Сейчас пишу программу для ворда и столкнулся с формулами, которые нельзя написать через бэйсик. у меня есть мастайп - он может сохранить...

Вставка текста в конец строки между определенными словами
Помогите пожалуйста с задачей для Visual Basic. Задача такова, что нужно найти определенное слово (назовем его s1), затем в конец каждой...

Автоматическая вставка текста, в textbox, если этот текст уже вводился
Подскажите с кодом, как сделать так, например если ты первый раз авторизуешься, последующие разы пароль вводился либо сам, либо как только...

Выделение текста в word маркером
Что нужно добавить в код, чтобы &quot;Текст&quot; сброшенный в word слева пометился маркером (в ворде они в виде черного шарика, крадрата, галочки и...

Как можно сохранить файл Word в файле формата 'Текста DOS' средствами VB?
Проблема такая. Как можно сохранить файл Word (либо содержащийся в нем текст) в файле формата 'Текста DOS' средствами VB


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru