Вставка текста в 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д