- 01: 名前:shin投稿日:2006/01/27(金) 16:59
- Visio上部のある特定のメニューを無効にし、
選択できないようにする方法はあるのでしょうか?
例えば、自分で作成したシェイプを自前で作成したフォント指定画面のみで、
フォントとを指定させたいとします。
作成したシェイプが選択された時の、Visioの「書式」→「テキスト」を無効にし、
テキストを選択させないようにしたいと考えています。
マクロで、メニューの有効・無効を動的に変更することは、可能なのでしょうか?
ご存知の方、教えて頂けませんでしょうか?
宜しくお願いいたします。
- 02: 名前:yoda投稿日:2006/01/27(金) 17:40
- enableプロパティをつかうと、できるかもしれません。
特定のメニューにたいして、
vsoMenuItem.Enabled = False または、 True
とします。
- 03: 名前:shin投稿日:2006/01/27(金) 20:43
- yoda様
いつもありがとうございます。
動的変更することができました。
ありがとうございます。
- 04: 名前:shin投稿日:2006/01/31(火) 16:11
- 根本的なところを質問するのを忘れていましたので
もうひとつ質問させて下さい。
選択されたとき、シェイプの情報を解析し解析結果を元に
無効とする対象メニューを決定してメニューを無効にしたいと考えています。
(上記の方法で、メニューを無効にできることは確認できました。)
シェイプを「選択」もしくは「選択解除」した場合、
その都度、シェイプの選択状態を把握したいのですが、
シェイプの選択状態の情報を取得することは、できるのでしょうか?
以上、宜しくお願いします。
- 05: 名前:yoda投稿日:2006/01/31(火) 16:27
- Selectionオブジェクト(あるいは、プロパティ)について、
調べてみてはいかがでしょう。
たとえば、
,,,,.Selection.Count=0 なら、どのシェイプも、選択されていません。
- 06: 名前:shin投稿日:2006/01/31(火) 19:31
- selectionオブジェクトで、選択されているオブジェクト数を取得できることは確認していますが、
あるシェイプが選択されたその瞬間に、マクロを実行し対象メニューを無効にしたいと思っています。
例えば、「A」というシェイプが選択された時のみ、対象メニューを無効状態にして、
その後、他のシェイプが選択されれば、対象メニューを有効にするという挙動にしたいと
思っていますが、可能なのでしょうか?
選択された時にイベントが発生してくれれば問題ないのですが、
そういった、イベントが存在しないようなので、ちょっと困っています。
以上、宜しくお願いします。
- 07: 名前:yoda投稿日:2006/01/31(火) 19:47
- SelectionChanged イベントを試してみてください。
- 08: 名前:shin投稿日:2006/01/31(火) 20:04
- yoda様
早速の回答ありがとうございます。
Applicationオブジェクトにイベントが存在したんですね・・・
documentオブジェクトやpageオブジェクトの中を探してました。
申し訳ありませんでした。
SelectionChangedイベントで、問題ないことを確認しました。
ありがとうございました。
■トップに戻る リロード 単独スレ表示
|