- 01: 名前:Aka投稿日:2003/03/12(水) 20:51
- いつもお世話になっております。
VISIOでのイベントをVBで取得して、その処理をVBで行いたいのです。
例えば、Shapeが移動したとか、ShapeのHeight,Widthが変更されたとかに
対して、VBでAの処理、Bの処理を行うってな具合にです。
一応、サンプルコードを参照して、やってみたのですが・・・
「プロパティまたはメソッドの呼び出しの場合には、引数または戻り値として
プライベートオブジェクトへの参照を含めることは出来ません。」
とエラーが出てしまいます。
例:
○VBのフォームロードイベント
Dim g_Sink As CEventSamp
Private Sub Form_Load()
Dim docObj As Visio.Document
Dim eventObj As Visio.EventList
If vaoCreateGIO = True Then
Set g_Sink = New CEventSamp
Set docObj = g_appVisio.Documents.Add("")
Set eventObj = docObj.EventList
eventObj.AddAdvise visEvtCodeShapeDelete, g_Sink, "", "Shape Deleted..."
eventObj.AddAdvise (visEvtMod + visEvtCell), g_Sink, "", "Cell Changed..."
End IF
End Sub
○VBのクラスモジュールのCEventSamp
Public Sub VisEventProc(eventcode As Integer, sourceObj As Object, eventID As Long, _
seqNum As Long, subjectObj As Object, moreInfo As Variant)
Dim strDumpMsg As String
Select Case eventcode
Case visEvtCodeShapeDelete
strDumpMsg = "DELETE" & eventcode
Case Else
strDumpMsg = eventcode
End Select
FormEventDisplay.EventText.Text = strDumpMsg
End Sub
○VBの標準モジュールのvaoCreateGIO
VISIOファイル内のVisreg.Basを使用
お解りになる方がいらしたら、ぜひ教えて下さい。
よろしくお願いします。
■トップに戻る リロード 単独スレ表示
|