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

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста, как в готовый документ Word вставлять в определенные места из VB-программы текст.

Решение задачи: «Вставка текста в Word»

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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы