Вставка текста в 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

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


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

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

6   голосов , оценка 4.333 из 5
Похожие ответы