В этой статье собраны вопросы по использованию Visio 2003 - векторного редактора иллюстраций, схем.
1. Как в документе Visio 2003 создать обработчик событий мыши? Пример описан в help, строка для поиска "MouseMove event". - Tools\Macros\Visual Basic Editor - выбираем в дереве объектов документа Visio Objects\ThisDocument (имя_файла) - вставляем туда следующий текст:
Dim myMouseListener As MouseListener
Private Sub Document_DocumentSaved(ByVal doc As IVDocument)
Set myMouseListener = New MouseListener
End Sub
Private Sub Document_BeforeDocumentClose(ByVal doc As IVDocument)
Set myMouseListener = Nothing
End Sub
- в дереве объектов щёлкаем правой кнопкой на Class Modules, выбираем Insert\Class Module - появившийся модуль, например, Class1, переименовываем в MouseListener - вставляем в класс MouseListener следующий текст:
Dim WithEvents vsoWindow As Window
Dim iX As Double
Dim iY As Double
Private Sub Class_Initialize()
Set vsoWindow = ActiveWindow
End Sub
Private Sub Class_Terminate()
Set vsoWindow = Nothing
End Sub
Private Sub vsoWindow_MouseMove(ByVal Button As Long,
ByVal KeyButtonState As Long,
ByVal x As Double,
ByVal y As Double,
CancelDefault As Boolean)
iX = x
iY = y
End Sub
Private Sub vsoWindow_MouseUp(ByVal Button As Long,
ByVal KeyButtonState As Long,
ByVal x As Double,
ByVal y As Double,
CancelDefault As Boolean)
If Button = 1 Then
Debug.Print "Left mouse button released"
ElseIf Button = 2 Then
Debug.Print "Right mouse button released"
ElseIf Button = 16 Then
Debug.Print "Center mouse button released"
End If
MsgBox (Str(iX) + ", " + Str(iY))
End Sub
- сохраняем документ.
Вуаля! Готов скелет обработчика мыши - любой щелчок на документе вызывает окошко, где печатаются координаты курсора. Метод (с незначительными косметическими изменениями) наверняка подойдёт к Word и Excel.
2. Как в Visio уменьшить интервал автоперерисовки объектов?
Visio по умолчанию, для быстродействия видимо, "время" в формулах обновляется 1 раз в минуту (в ссылках Разработчика об этом не раз упоминается), т.е. 1 раз в 60000 миллисекунд. Вот этот параметр и необходимо будет изменить. Он находится в реестре и его можно изменить “ручками”, либо с помощью *.reg файла. Для пользователей Visio 2000. Адрес: HKEY_CURRENT_USER\Software\Visio\Visio2000\application Параметр: Animation, тип REG_SZ (строка) Значение: 60000 изменить на 500 Для пользователей Visio 2002 Адрес: HKEY_CURRENT_USER\Software\Microsoft\Visio\application Параметр: Animation, тип REG_SZ (строка) Значение: 60000 изменить на 500 Для пользователей Visio 2003 Адрес: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Visio\application Параметр: Animation, тип REG_SZ (строка) Значение: 60000 изменить на 500 Подробные описания других параметров можно также найти на диске Visio 2000 в папке "X:\Install\bin\Program Files\Visio\DVS\Visreg.txt" или в папке Visio 2000 на компьютере "X:\Program Files\Visio\DVS\Visreg.txt" По материалам сайта www.prodigitall.narod.ru, автор Ничков Алексей.
3. Visio: объекты и их свойства (Properties).
В Visio удобно пользоваться Properties у объектов - они хорошо видны на сохранённом как web-страница чертеже (нужно держать кнопку Ctrl и щёлкнуть на нужном объекте, после этого в левой части отобразится таблица Details c Properties или Custom Properties). Некоторые объекты, например, Router, уже имеют богатый набор встроенных свойств, у некоторых их надо добавлять вручную (правая кнопка\Shape\Custom Properties...). Properties можно автоматически отображать в качестве текстовой метки у объектов. Для этого надо выбрать один или несколько объектов, выбрать Tools\Add-Ons\Building Plan\Label Shapes..., и далее указать, какие указывать Properties в Label1..4.
4. Автоматическое построение диаграмм сетей.
Enterprise Networks Tools, а также Fluke Networks’ LAN MapShot. LAN MapShot. Такие продукты позволяют быстро определить все IP- и NetBIOS-устройства, включая сетевые коммутаторы, серверы, маршрутизаторы, принтеры, хабы, хосты, а также хосты и принтеры IPX.
5. Для Visio есть примочка к MBSA (Visio Connector for Microsoft Baseline Security Analyzer (MBSA)) - по диаграмме сети запускается сканирование хостов на уязвимости.
6. Как в Visio 2003 автоматически разместить на листе несколько компьютеров?
Dim intWindowCount As Integer
Dim strWindowCaption As String
'Получить число индекса нового окна в коллекции окон
intWindowCount = Application.Windows.Count
'Получить описание (caption) окна
strWindowCaption = Application.Windows(intWindowCount).Caption
For j = 0 To 5
Application.Windows.ItemEx(strWindowCaption).Activate
'10 + j - координата x в дюймах, 6.003937 - координата y в дюймах
Application.ActiveWindow.Page.Drop Application.Documents
.Item("SERVER_M.VSS").Masters.ItemU("Server"), 10 + j, 6.003937
Next j
131118. Как скруглить углы? Меню Format -> Corner Rounding...
Как получить доступ к готовым шаблонам фигур (Shapes)? Меню File -> Shapes, выберите нужный раздел фигур.
Как точно (по точкам) перемещать элементы рисунка? Выберите то, что нужно переместить кликом мышью, и кнопками курсора перемещайте объект в нужном направлении. Если при этом удерживать Shift, то перемещение будет точным (осуществляется мелким шагом).
140519. Как сделать градиентную заливку? Format -> Fill -> выберите из выпадающего списка Pattern, выберите Color.
[Ссылки]
1. MS Visio: как сделать половинку окружности? |