- 01: 名前:こうち投稿日:2000/04/17(月) 10:39
- マクロ本体をステンシル(.vss)に置いて
テンプレート(.vst/.vsd)の
thisDocument Document_DocumentCreated
thisDocument Document_DocumentOpened
からマクロを起動したいと思っています。
いろいろやってみるのですが他のプロジェクトの
プロシージャをcallする方法がうまくいきません。
ご存じの方,教えていただけませんか。
- 02: 名前:かど 投稿日:2000/04/17(月) 15:19
- かどです。恥も外聞もなく。
> マクロ本体をステンシル(.vss)に置いて
> テンプレート(.vst/.vsd)の
> thisDocument Document_DocumentCreated
> thisDocument Document_DocumentOpened
> からマクロを起動したいと思っています。
前置き:
ステンシルでマクロを組んでおきます。
Public Sub Message(vText as String)
msgbox vText
End Sub
マクロがあるステンシルをDocumentオブジェクトに
取得します。
private WithEvents theDoc as Visio.Document
Public sub Init()
Set theDoc = Visio.Documents.Item(??) <-- ステンシルのID
call theDoc.Message("abc")
End Sub
マクロ実行で Init() を実行してみてください。
ご質問では、thisDocument のイベントプロシージャで、という
ことでしたが、この例で勘弁してください。
ちなみに、Document_Opened() であれば、該当ステンシルをOpenさせてから
マクロをCallすればイケルと思います。
うっちゃりだったらどうしよう・・・。
- 03: 名前:こうち投稿日:2000/04/17(月) 19:12
- かどさん,またもや感謝感謝。
実は私も同じようなことをやっていました。
だからRESを読んだとき「これもやったはずだけど」
と思いながらも素直にそのまま入力してみました。
そうしたら[WithEvents]がエラーになるんです。
「なんで?」と考えてみたら,[WithEvents]は
[ThisDocument]に書かないとだめなことを思い出しました。
その瞬間ひらめきました(遅い)。
私はcallされる方のプロシージャを挿入した
[標準モジュール]に書いていたんです。
わかってしまえば当然なことなんですが
callされる方も[ThisDocument]に書かないとだめなんですね。
それがわかれば後はすんなり行きました。
ほんとにありがとうございました。
助かりました。
>うっちゃりだったらどうしよう・・・。
いえいえ,今回は下手出し投げぐらい行ってますよ。
■トップに戻る リロード 単独スレ表示
|