Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 06:05

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Создание оглавления страниц
СообщениеДобавлено: 14 июл 2022, 18:16 
В поиске не нашел. Подскажите, есть рисунок с боле чем 200 страниц. Как можно сделать оглавление этих страниц на 1-й странице для дальнейшего поиска на этой странице и быстрого перехода на нужную страницу.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание оглавления страниц
СообщениеДобавлено: 14 июл 2022, 21:00 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Из коробки такого нет! Однозначно писать макрос, вы только уточните оглавление должно быть по названиям страниц (отображаемое в нижней части окна)?
Дополнено позднее: Нашел образец
Содержимое спрятано под спойлер ↓
Спойлер:
John Marshall в статье VBA писал(а):
Table of Contents: Create a Table of Contents with hyper links for a Visio drawing.
from Zack Moore Microsoft
Код:
Sub CreateTableOfContents()

' creates a shape for each page in the drawing on the first page of the
' drawing then adds a hyperlink to each shape so you can click and go
' to that page

' define a toc shape
Dim TOCEntry As Visio.Shape
Dim PageToIndex As Visio.Page
Dim X As Integer
Dim hlink As Visio.Hyperlink

' loop through all the pages you have
For Each PageToIndex In Application.ActiveDocument.Pages

  ' you may want to refine this and use a top down algorithm with
  ' something smaller than 1 inch increments.
  X = PageToIndex.Index

  ' draw a rectangle for each page to hold the text
  Set TOCEntry = ActiveDocument.Pages(1).DrawRectangle(1, X, 4, X + 1)

  ' write the page name in the rectangle
  TOCEntry.Text = PageToIndex.Name

  ' add a hyperlink to point to the page to you can just go there
  ' with a click

  ' need to create a handle to add the hyperlink
  Set hlink = TOCEntry.AddHyperlink

  ' add a description
  hlink.Description = PageToIndex.Name

  ' add the page name as an address
  hlink.SubAddress = PageToIndex.Name

Next

End Sub

Table of Contents: Create a Table of Contents with Goto Page links. This is my version of Zack’s program.
Код:
Sub TableOfContents()

' creates a shape for each page in the drawing on the first page of the drawing
' then add a dbl-clk GoTo to each shape so you can double click and go to that Page

Dim PageObj As Visio.Page
Dim TOCEntry As Visio.Shape
Dim CellOjb As Visio.Cell
Dim PosY As Double
Dim PageCnt As Double
' ActiveDocument.Pages.Count will give the number of pages, but we are interested
' the number of foreground pages
PageCnt = 0
For Each PageObj In ActiveDocument.Pages
If PageObj.Background = False Then PageCnt = PageCnt + 1
Next

' loop through all the pages
For Each PageObj In ActiveDocument.Pages
If PageObj.Background = False Then ' Only foreground pages

' where to put the entry on the page?
PosY = (PageCnt - PageObj.Index) / 4 + 1
' draw a rectangle for each page to hold the text
Set TOCEntry = ActiveDocument.Pages(1).DrawRectangle(1, PosY, 4, PosY + 0.25)
' write the page name in the rectangle
TOCEntry.Text = PageObj.Name

' add a link to point to the page to you can just go there with a Double Click
Set CellObj = TOCEntry.CellsSRC(visSectionObject, visRowEvent, visEvtCellDblClick) 'Start
CellObj.Formula = "GOTOPAGE(""" + PageObj.Name + """)"

End If
Next

End Sub

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Создание оглавления страниц
СообщениеДобавлено: 15 июл 2022, 15:08 
Surrogate писал(а):
Из коробки такого нет! Однозначно писать макрос, вы только уточните оглавление должно быть по названиям страниц (отображаемое в нижней части окна)?
Дополнено позднее: Нашел образец
Спасибо большое. Да, оглавление из названий страниц. Попробую разобраться.


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB