Author |
Topic |
|
Григорий
Russia
2 Posts |
Posted - 04/18/2005 : 13:47:02
|
Привет! Подскажите пжлста, как в VISIO 2003 сделать, чтобы COMMENT отображался в печати. |
|
brace
Russia
358 Posts |
Posted - 04/19/2005 : 11:27:44
|
Возможный вариант решения задачи. Window > Show ShapeSheet затем ищем таблицу Annotation в ней есть колонка Comment наведите мышку на ячейку и увидите текст комментария читал что можно распечатать любую таблицу/строку/ячейку из ShapeSheet но как это сделать не знаю. Может кто нить подскажет ???
|
|
|
brace
Russia
358 Posts |
Posted - 04/19/2005 : 14:31:18
|
нашел как распечатать Comment но не вместе с рисунком а в отдельном тхт файле.
1 выделяем нужную ячейку в ShapeSheet 2 копируем ее содержание в буфер 3 вставляем в заранее созданный пустой тхт файл.
и так каждую ячейку. Конечно если их много это муторно. но другого метода не знаю.
|
|
|
Григорий
Russia
2 Posts |
Posted - 04/19/2005 : 15:48:37
|
Спасибо за совет! Боюсь, мне это не подходит. Много COMMENT(ов) надо распечатывать.Походу такой возможности нет. Обидно! |
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/19/2005 : 18:30:56
|
Из предыдущей беседы кажется понял, что такое Comment :) Теперь скажите, как Вы хотите его распечатать - на поле рисунка, в отдельном документе...? На рисунке в общем случае они могут налезать на шейпы и друг на друга. В текстовый файл в табличку - проще. С привязкой к NameID шейпа? На одном листе, в одном файле? |
|
|
grigory
Russia
4 Posts |
Posted - 04/19/2005 : 20:55:15
|
Хотелось бы, как на рисунке, пусть налезают на шейпы и друг на друга |
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/19/2005 : 22:43:53
|
С макросами Вы умеете обращаться? Привожу простейший вариант. Приведенный ниже макрос выберет Comments из всех шейпов на активной странице и выведет их в виде текстовых блоков чуть ниже шейпов. Перед печатью эти блоки можно подвинуть куда нужно, сжать, растянуть и т.д. Тренироваться, естественно, лучше не на единственном экземпляре, а на копии файла :) Убрать эти блоки можно только вручную (или закрыть файл не записывая).
Sub ttt() For Each Sh In ActivePage.Shapes s = Replace(Sh.Cells("Comment").Formula, Chr(34), "") If s <> "" Then vX = Sh.Cells("PinX") - Sh.Cells("Width") * 0.5 vY = Sh.Cells("PinY") - Sh.Cells("Height") * 0.5 - 0.2 W = Sh.Cells("Width") H = Sh.Cells("Height") Set shpObj = ActivePage.DrawRectangle(vX, vY, vX + W, vY + H) shpObj.Text = Replace(Sh.Cells("Comment").Formula, Chr(34), "") shpObj.Cells("Para.HorzAlign").Formula = "0" shpObj.Cells("LinePattern").Formula = 0 shpObj.Cells("FillPattern").Formula = 0 End If Next End Sub
|
|
|
grigory
Russia
4 Posts |
Posted - 04/19/2005 : 23:20:52
|
INDEX(0;INDEX(0;MASTERNAME();:);.).- Это не совсем то, что я хотел:). Допустим у меня есть COMMENT, в которой я ввожу текст(свой комментарий).Вот этот,мой комментарий,хотелось бы чтобы отображался при печати. Надеюсь объяснил :) |
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/19/2005 : 23:35:12
|
Не, не объяснил :( Этот макрос выводит все комментарии, которые введены в шейпы через меню Insert / Comment. Независимо от того, Вы их вводили или еще кто-то... Это оказались не те комментарии? Значит надо объяснять как-то по-другому... |
|
|
brace
Russia
358 Posts |
Posted - 04/20/2005 : 08:59:28
|
позвольте вклиниться мне тоже это нужно Блок Comment никакого отношения к шейпам не имеет это самостоятельный объект рисунка который можно двигать по рисунку Доказательста - пожста ! открываю новый файл visio затем Insert > Comment несколько раз и на пустом рисунке появляются комментарии с номерами a1, a2, a3 и тд.
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/20/2005 : 19:32:35
|
Я извиняюсь :) Начнем с того, что у меня был открыт Visio 2002 и решение было приведено для него. В Visio 2002 Comment имеет прямое отношение к шейпам - он хранится в ячейке Comment секции Miscellaneous. В Visio 2003 все изменили, а я как-то об этом и не подумал. Здесь Comment хранятся в отдельной секции Annotation в шейп-листе страницы, а не шейпов. Хотя в шейпах та самая ячейка осталась, но ее содержимое уже не отображается. Предложенный алгоритм подходит и здесь, но данные брать надо из другого места.
Sub ttt() If ActivePage.PageSheet.SectionExists(Visio.visSectionAnnotation, 0) Then n = ActivePage.PageSheet.RowCount(Visio.visSectionAnnotation) For i = 1 To n vX = ActivePage.PageSheet.Cells("Annotation.X[" & i & "]") vY = ActivePage.PageSheet.Cells("Annotation.Y[" & i & "]") W = 2 H = 1 Set shpObj = ActivePage.DrawRectangle(vX, vY, vX + W, vY + H) shpObj.Text = Replace(ActivePage.PageSheet.Cells("Annotation.Comment[" & i & "]").Formula, Chr(34), "") shpObj.Cells("Para.HorzAlign").Formula = "0" shpObj.Cells("LinePattern").Formula = 0 shpObj.Cells("FillPattern").Formula = 0 Next End If End Sub
Макрос проверяет наличие секции Annotation, узнает сколько в ней строк, для каждой строки рисует новый текстовый блок (координаты для каждого коммента хранятся там же рядом) и записывает в него текст Comment'а. Рисунок, конечно, искажается, зато комментарии должно быть видно. |
|
|
grigory
Russia
4 Posts |
Posted - 04/20/2005 : 22:33:46
|
Да, именно то, что я хотел. Огромное спасибо! |
|
|
|
Topic |
|