KoMaDo   VISIO SQUARE : 雑談その他  ■ Headline ■ HOME    

雑談その他トップへ ▼カッ飛び最後 

  ツールボタンを押したことを検出するには?

01: 名前:yoda投稿日:2007/12/17(月) 06:53
MSの英文の掲示板に、表題のような質問があり、MVPのChris Roth
さんが、EnterScopeイベントを使ったサンプルを示しています。
EnterScopeイベントを使うと、四角形ツールやポインターなど、
既存のツールボタンを押したことを検出することが、できます。
こんなことができるとは、知りませんでしたので、ご紹介します。
EnterScopeさんのマクロの内、英文のメッセージを書き出すところは、
日本語にして、同時に、メッセージボックスも表示するようにしました。

このマクロは、VBAのThisDocumentモジュールにおいてください。
マクロを使用できるようにして、エディットモード切替ボタンを押して、
実行モードに切り替えると、マクロが動くようになります。

ただ、Chris Rothさんが指摘しているように、このマクロでは、
オブジェクト選択ツールのように、ポインターや投げ縄の区別は
できません。

Private WithEvents m_visApp As Visio.Application

Private Sub Document_RunModeEntered(ByVal doc As IVDocument)
Set m_visApp = ThisDocument.Application
End Sub

Private Sub m_visApp_EnterScope(ByVal app As IVApplication, ByVal nScopeID As Long, ByVal bstrDescription As String)

If nScopeID = Visio.VisUICmds.visCmdDRLineTool Then
Debug.Print "直線ツールを押した。"
MsgBox "直線ツールを押したでしょう?"
End If

If nScopeID = Visio.VisUICmds.visCmdDRRectTool Then
Debug.Print "四角形ツールを押した。"
MsgBox "四角形ツールを押したでしょう?"
End If

If nScopeID = Visio.VisUICmds.visCmdDRPointerTool Then
Debug.Print "オブジェクト選択(ポインター)ツールを押した。"
MsgBox "オブジェクト選択(ポインター)ツールを押したでしょう?"
End If

End Sub

02: 名前:yoda投稿日:2007/12/17(月) 08:53
6行目の、「EnterScopeさんのマクロの内、」は、「Chris Rothさんの
マクロの内、」の間違いでした。


雑談その他トップへ ▲カッ飛び先頭