копировать данные с EXCEL в CorelDRAW

  • Автор темы Автор темы sim2009
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

sim2009

Участник
Топикстартер
Сообщения
1
Реакции
0
Здравствуйте!
Уважаемые специалисты! Помогите пожалуйста решить задачу. Есть таблица EXCEL в которой занесены фамилии, даты рождения, индивидуальные номера. В CorelDRAW X4 есть 500 карточек. Каждая карточка состоит из нескольких слоёв. Фамилия находится в одном слое (layer1), дата в другом слое (layer2 ), индивидуальный номер в третьем слое (layer3). Необходимо перенести данные с таблиц EXCEL в карточки CorelDRAW X4 в автоматическом режиме (это необходимо для того, что бы вручную не копировать фамилию, дату рождения и индивидуальный номер в каждый слой и в каждую карточку).
Пробовал решить проблему с помощью макросов. Искал в Интернете решение (готовые макросы для CorelDRAW).
 
Ответ: копировать данные с EXCEL в CorelDRAW

Код:
Sub ReplaceText(ShapeName As String, ReplaceWith As String)
    Dim s As Shape
    
    For Each Layer In ActivePage.Layers
        Set s = Layer.FindShape(ShapeName)
    
        If Not s Is Nothing Then
            Shape.Text.Replace ShapeName, ReplaceWith, False, replaceall:=True
        Else
        ' пробуем обойти вcе фигуры
            For Each Shape In ActiveLayer.Shapes
                If Shape.Name = "FIO" Then
                    Shape.Text.Replace ShapeName, ReplaceWith, False, replaceall:=True
                End If
            Next
         End If
End Sub

Sub connect_to_excel()
Set ex = CreateObject("Excel.Application")
Set wb = ex.workbooks.Add
Set ws = wb.sheets(1)

' имена фигур с фигурным текстом для замены значений
fio_shape_name = "#FIO"
pas_shape_name = "#Pas_ser"

i = 1
Do While ws.Cells(i, 1).Value <> ""
    ReplaceText fio_shape_name, Trim(ws.Cells(i, 1).Value)
    fio_shape_name = Trim(ws.Cells(i, 1).Value)
    
    ReplaceText pas_shape_name, Trim(ws.Cells(i, 2).Value)
    pas_shape_name = Trim(ws.Cells(i, 2).Value)
    i = i + 1
Loop

ex.Quit
Set ex = Nothing
End Sub

добавить в нужных местах слоев текстовые метки типа #FIO, #Pas_ser и поэкспериментировать с вышуказанным кодом :)
 
Статус
Закрыто для дальнейших ответов.