Author |
Topic |
|
r22
10 Posts |
Posted - 08/17/2006 : 16:40:16
|
можно ли в visio проверить содержит ли документ страницу с заданным именем или нет, соотв. вернуть - true/false |
|
Tumanov
Russia
1198 Posts |
Posted - 08/17/2006 : 18:56:15
|
Sub ttt() Debug.Print PgTst("Page-2") Debug.Print PgTst("Page-4") End Sub
Function PgTst(PgName As String) As Boolean Dim Pg As Visio.Page On Error Resume Next Set Pg = ActiveDocument.Pages(PgName) If Pg = Empty Then PgTst = False Else PgTst = True Set Pg = Nothing On Error GoTo 0 End Function |
|
|
r22
10 Posts |
Posted - 08/18/2006 : 12:58:28
|
Спасибо! но как мне из ShapeSheet передать в этот код значение (имя страницы) и, само главное, как обратно получить true/false?
ещё раз спасибо! |
Edited by - r22 on 08/18/2006 12:58:48 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 08/18/2006 : 20:04:10
|
А как и в каком виде Вы его (имя страницы) получили в ShapeSheet?
|
|
|
r22
10 Posts |
Posted - 08/21/2006 : 12:37:55
|
по тексту, который вбит в шейп (текст в шейпе = названию страницы, которую нужно открыть, предварительно узнав есть вообще такая страница или нет) |
Edited by - r22 on 08/21/2006 12:42:30 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 08/21/2006 : 18:40:18
|
Например, вот так. Заводите ячейку, в которую нужно возвращать результат (например, Custom Properties). Придумываете, когда выполнять действие (например, при перемещении шейпа). Вписываете в ячейку ShapeSheet вызов процедуры, возвращающей результат в вышеуказанную ячейку.
Проверяем все это на деле: Слегка видоизменяем макросы Sub ttt(shpObj As Visio.Shape) shpObj.Cells("Prop.Row_1").Formula = PgTst(shpObj.Text) End Sub Function PgTst(PgName As String) As Boolean Dim Pg As Visio.Page On Error Resume Next Set Pg = ActiveDocument.Pages(PgName) If Pg = Empty Then PgTst = False Else PgTst = True Set Pg = Nothing On Error GoTo 0 End Function На странице Page-1 рисуем квадратик. В него вписываем текст Page-1. Создаем в нем Custom Properties. Открываем его ShapeSheet и в ячейку EvwntXFMod вписываем =CALLTHIS("ThisDocument.ttt",) Открываем окно Custom Properties для наблюдения и начинаем проверку. Слегка перемещаем шейп. В Custom Properties наблюдаем значение TRUE. Вносим в шейп текст Page-3 и опять двигаем его. В Custom Properties появляется значение FALSE. |
|
|
r22
10 Posts |
Posted - 08/22/2006 : 12:11:03
|
БОЛЬШОЕ СПАСИБО! Всё получилось! |
|
|
|
Topic |
|