[ID CC-CC2022] Перебор информации в выбранной группе

  • Автор темы Автор темы ReallyCool
  • Дата начала Дата начала
  • Спасибо
Реакции: Ksenia и ReallyCool
У Вас таблица загруппирована, я делал тесты на втором файле с выкушенной из группы таблицей, на ней всё работает. А для работы с загруппированной таблицей, надо добавлять работу с группами из начала обсуждения, что я поленился.
Или у Вас другая ошибка?
 
  • Спасибо
Реакции: Ksenia
ошибка - Type mismatch
в случае если убрать объявление типов переменных, все работает корректно:
Код:
Sub ttt()
  'Dim indd As New InDesign.Application
  'Dim t As InDesign.Table
  'Dim c As InDesign.Cell
  'Dim tf As InDesign.TextFrame
  Set indd = CreateObject("InDesign.Application")

  For Each tf In indd.ActiveWindow.ActivePage.TextFrames
    For Each t In tf.Tables
      For Each c In t.Cells
        Debug.Print c.Contents
      Next c
    Next t
  Next tf
End Sub
 
  • Спасибо
Реакции: ReallyCool
так вам же сразу сказали
да, я помню, поэтому и решил эту проблему ))

а вот теперь вопрос новый - как задать размер вставляемой картинки?
т.к. сейчас картинка вставляется в ячейку и растягивается по ширине всей ячейки?
как задать вставку, например, так:
1. получить размер в пикселах картинки, которую нужно вставить
2. получить размер в пикселах ячейки, куда вставлять
3. вставить картинку, размер строго пикселы, например 25х25 пиксел
 
хмм.
а в чем тогда задается размер?
например, картинка у меня имеет размер 18x18 пикселов, если смотреть в фотошопе
 

Вложения

  • LED.jpg
    LED.jpg
    890 байт · Просм.: 232
В поинтах разумеется
1/72 дюйма
 
альтернативный вариант с убийством содержимого ячейки
а как просто очистить ячейку?
картинку в ячейку добавил так:
Код:
t.Rows(2).Cells(9).Texts(1).Place "W:\LED.eps"

если так сделать:
Код:
t.Rows(2).Cells(9).AllGraphics(1).Delete
удаляет картинку, но сам контейнер остается.
как удалить и контейнер?

а если пробовать эту строчку дает ошибку "Запрошенный элемент набора не существует:
Код:
t.Rows(2).Cells(9).Texts(1).Delete
 
как удалить и контейнер?
на это нашел сам ответ :
Код:
t.Rows(2).Cells(9).Rectangles(1).Delete


не работает. нужна помощь в верном VBscript синтаксисе:
1. получить размер контейнера .rectangles
2. изменить его размер
3. получить размер изображения в ячейке .AllGraphics(1)
4. изменить его размер

или где бы посмотреть толковый справочник по методам для VBscript...
 
спасибо, этот файл скачал и прочитал в начале изучения.
это просто небольшой гайд по кодингу на VBscript
но там нет полной инфы по всем методам, в данном случае
как менять размер картинки или rectangle в моем рабочем коде (((
 
Последнее редактирование модератором:
У rectangle есть свойство geometricBounds. Его можно и получить, и потом изменить.
 
Ну правильно там именно особенности по программированию на VB, объектная модель та же самая что и в JS ссылки на нее я вам постоянно цитирую
 
объектная модель та же самая что и в JS
да, там и читаю, но затык ниже


Его можно и получить, и потом изменить
вот тут и застрял,
с помощью какой конструкции получить\изменить значения?
вот эта строка рабочая, дает кол-во rectanles в ячейке:
Код:
t.Rows(2).Cells(9).Rectangles.Count

а вот пытаюсь обратиться к свойству, дает ошибку несоответствие типов:
Код:
Debug.Print t.Rows(2).Cells(9).Rectangles(1).GeometricBounds
т.к. по описанию модели возвращается массив,
а как обратиться, по каим именам к элементам массива, неясно пока что...
 
Debug.Print t.Rows(2).Cells(9).Rectangles(1).GeometricBounds(1)
такое что тоже ошибку выдает?
Там в массиве четыре значения X1,Y2,X2,Y1 кажется
 
оо! есть результат, вот оно как обращаться нужно

Код:
        Debug.Print t.Rows(2).Cells(9).Rectangles(1).GeometricBounds(0)
        Debug.Print t.Rows(2).Cells(9).Rectangles(1).GeometricBounds(1)
        Debug.Print t.Rows(2).Cells(9).Rectangles(1).GeometricBounds(2)
        Debug.Print t.Rows(2).Cells(9).Rectangles(1).GeometricBounds(3)