- Сообщения
- 738
- Реакции
- 21
Вот есть такой код на VBS:
(обработка таблицы с присвоением кегля и гарнитуры)
Выяснилось, что в VBS ограниченные возможности обработки диапазона (ItemByRange). И нужно заниматься перебором. А в JS есть.
Не подскажете, как это примерно могло бы выглядеть? Можно не все расписывать.
P.S. Я так понимаю, что циклы уже не нужны будут?
(обработка таблицы с присвоением кегля и гарнитуры)
Код:
'курсор в таблицу
Set MyInd = CreateObject("InDesign.Application.CS3")
MyInd.ScriptPreferences.EnableRedraw = False
Set myTable = MyInd.Selection.Item(1).Parent.Parent
kk = myTable.Columns.Count ''колво колонок
CC = myTable.Cells.Count 'колво ячеек
With myTable
Set mySelB = .Cells.ItemByRange(.Cells.Item(kk + 1), .Cells.Item(-1)).Item(-1) 'объявили выделением тело таблицы
Set mySelH = .Cells.ItemByRange(.Cells.Item(1), .Cells.Item(kk)).Item(-1) 'объявили выделением только заголовок
End With
For i = 1 To CC 'по телу таблицы проходим
myTable.Cells.Item(i).Texts.Item(1).AppliedFont = MyInd.Fonts.Item("Arial")
myTable.Cells.Item(i).Texts.Item(1).PointSize = 9
myTable.Cells.Item(i).TopInset = 1
myTable.Cells.Item(i).BottomInset = 1
myTable.Cells.Item(i).LeftInset = 1
myTable.Cells.Item(i).RightInset = 1
Next
For i = 1 To kk 'по шапке таблицы
mySelH.Cells.Item(i).TopInset = 2
mySelH.Cells.Item(i).BottomInset = 2
mySelH.Cells.Item(i).LeftInset = 2
mySelH.Cells.Item(i).RightInset = 2
Next
On Error Resume Next 'т.к. при повторном присвоении стиля Header возникает ошибка
myTable.Rows.Item(1).RowType = idRowTypes.idHeaderRow
On Error GoTo 0
MyInd.ScriptPreferences.EnableRedraw = true
Выяснилось, что в VBS ограниченные возможности обработки диапазона (ItemByRange). И нужно заниматься перебором. А в JS есть.
Не подскажете, как это примерно могло бы выглядеть? Можно не все расписывать.
P.S. Я так понимаю, что циклы уже не нужны будут?