Вставка текста в Word - VB
Формулировка задачи:
Подскажите пожалуйста, как в готовый документ Word вставлять в определенные места из VB-программы текст.
Решение задачи: «Вставка текста в Word»
textual
Листинг программы
- 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д