[CDR 2017-2021] макрос для макета лент

  • Автор темы Автор темы Soloman
  • Дата начала Дата начала
Комментарий модератора: Если кому-нибудь захочется написать по поводу макроса для лент, а не цены обсуждать, пишите в личку, открою тему
 
  • Спасибо
Реакции: Ksenia и Karatau
Шрифт поменять на свой и раскомментить нолик в цикле (3000 итераций долго)
Код:
Sub Macro1()
    Optimization = True
    Dim OrigSelection As ShapeRange
    Set OrigSelection = ActiveSelectionRange
    ActiveDocument.Unit = cdrMillimeter
    Dim s1 As Shape
    Dim s2 As Shape
    Dim down As Double
    down = 0
    rightS = 0
    For i = 1 To 300 '0
        For j = 0 To 3
            down = down + 25
            Set s1 = ActiveLayer.CreateRectangle2(0 + rightS, 0 - down, 1000, 25)
            For k = 0 To 3
                Set s2 = ActiveLayer.CreateArtisticText(250 * k + 100 + rightS, 0 - down + 3, "MКАР-01" & Right("000" & i, 4))
                s2.Text.Story.Font = "Impact"
                s2.Text.Story.Size = 60
            Next k
        Next j
        If i Mod 34 = 0 Then
            rightS = rightS + 1005
            down = 0
        End If
        Debug.Print i
    Next i
    Optimization = False
    ActiveWindow.Refresh
End Sub
 
А не проще было постоянную часть ленты просто на шаблон положить (или просто в отдельный слой), а обрабатывать только переменные данные? Зачем сам прямоугольник рисовать макросом? Просто если на ленте будет еще 2 загогулины чуть сложной формы и разного цвета, то придется усложнять макрос. Или тексты будут лежать не на равных расстояних друг от друга.
Хотя для конкретной задачи и так норм, особенно если она повторяться не будет
 
Последнее редактирование:
то придется усложнять макрос.
просто поменять строку создания прямоугольника, на копирование, например выделенного. А уж в выделенном может быть всё что угодно.
Как в СТ было так и сделал
 
не-не, это просто мои личные заморочки. всё у вас прэлестно
 
Особенно, если учесть, что тот, кому это надо было давно слился и мы тут чисто друг перед другом строкомерами меряемся '))'
 
  • Спасибо
Реакции: zollinger