Связи в CS [VB]?

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

Boyler

Участник
Топикстартер
Сообщения
50
Реакции
0
Нужно определить связанный файл выделенного объекта!
Т.е. выделяем фрейм с графикой, запускаем скрипт, получаем имя файла связи.

Не пойму как дальше:
Код:
Dim myInDesign As InDesign.Application
Set myInDesign = CreateObject("InDesign.Application.CS")
    If myInDesign.Documents.Count = 0 Then
        MsgBox "Нет документов!"
        End
    End If
    
Dim myDocument As InDesign.Document
    Set myDocument = myInDesign.ActiveDocument

Dim mySelection
Set mySelection = myDocument.Selection.Item(1)
Перепробовал множество вариантов вплоть до:
Код:
Set myLinkFile = myDocument.Links.Item(mySelection)

Ничего не получается! Хелп!
 
Ответ: Связи в CS [VB]?

Код:
Dim mySelection
Set mySelection = myDocument.Selection.Item(1)
Set myLink = mySelection.ItemLink
Если это, конечно, не Text или InsertionPoint :)
 
Ответ: Связи в CS [VB]?

Спасибо!

Но этот способ работает только если графический объект выделен инструментом Direct Selection Tool (белая стрелка).

Как обойти, поправить?
 
Ответ: Связи в CS [VB]?

А при чем тогда вообще Selection? - Перебирайте тогда все объекты и по какому-нибудь критерию найдя нужный определяйте связь с файлом картинки.

По коду вопроса - используйте ключевое слово New в заявлении Dim, чтобы объект создавался автоматически.

Вместо

Dim myInDesign As InDesign.Application
Set myInDesign = CreateObject("InDesign.Application.CS")

Так

Dim myInDesign As New InDesign.Application

Этот способ не работает в VBScript, но у вас как я понял просто VB.
 
Ответ: Связи в CS [VB]?

-=CMYK=- сказал(а):
А при чем тогда вообще Selection?
Желательно чтобы объект опрелелялся выбором пользователя!

Вообще план такой: пользователь выбирает объект, запускает скрипт, далее скриптом определяется имя файла, затем в Кореле открывает файл с таким же именем только с расширением .cdr.

Надеюсь понятно объяснил.
Делается для удобства правки тифов сделанных в Кореле!
 
Ответ: Связи в CS [VB]?

Дим, сначала отделяем агнцев от козлищ. То есть определяем тип выделенного:
Код:
Select Case TypeName(mySelection)
' Заморачиваемся только, если 
    Case "Oval", "Rectangle", "Polygon"
    ... ' Сюда напишем код, про который речь ниже :)
End Case
Теперь пора проверить, а если что внутри:
Код:
If mySelection.PDFs.Count > 0
или
Код:
If mySelection.EPSs.Count > 0
или
Код:
If mySelection.Images.Count > 0
есть еще, кажется, WMF, может, еще кто. Но смысл, я думаю, понятен.
Например, мы уперлись на Images.
Код:
If mySelection.Images.Count > 0 then
   Set myLink = mySelection.Images.Item(1).ItemLink
End if
Все.
 
Ответ: Связи в CS [VB]?

Виталий спасибо!

Извини за поздний ответ, с работы уволился, за станком теперь пахать буду, а пока кабеля ворочаю - не фонтан, но бабки реальные обещают - раза в два больше чем получал...
Вот теперь и с инетом траблы и времени нет. Это я так к слову... :-)
 
Статус
Закрыто для дальнейших ответов.