- 01: 名前:柏投稿日:2005/12/26(月) 21:00
- お世話になっております。
Visio2003にてプログラムからプルダウンメニューの追加をしたいと思っております。
それで、
Private Sub objVisio_DocumentOpened(ByVal doc As IVDocument)
Dim myButton As Object
Set myButton = Application.CommandBars("Tools").Controls.Add(Type:=msoControlButton, Temporary:=True)
myButton.Caption = "実行"
myButton.Visible = True
End Sub
とやって、ツールの下に、実行と言うメニューは追加できたのですが、この実行ボタンのサブメニューに追加する方法がわかりません。
どなたかわかる方がいらっしゃいましたら、お願いします。
また、ついでですみませんが、同じようにしてVBAのプログラムから、プルダウンメニューのトップ
(ツールと図形の間とか)に追加する方法もわかればお願いします。
- 02: 名前:yoda投稿日:2005/12/26(月) 21:57
- 質門は、一度に一つにしたほうがいいですよ。
- 03: 名前:yoda投稿日:2005/12/26(月) 22:59
- 最初の質問については、以下のようにすればよいと、思います。
ところで、蛇足ですが、CommandBarControlは、
Visioのオブジェクトではなく、Officeのオブジェクトのため、
Visioでは、コーディングとデバッグが、かなり不便です。
そのため、Excelの上で、コーディングとデバッグをしました。
Private Sub test()
Dim myButton1 As CommandBarButton, myButton2 As CommandBarButton
Dim myPop As CommandBarPopup
Set myPop = Application.CommandBars("Tools").Controls.Add(Type:=msoControlPopup, Temporary:=True)
myPop.Caption = "実行"
myPop.Visible = True
Set myButton1 = myPop.Controls.Add(Type:=msoControlButton, Temporary:=True)
myButton1.Caption = "サブメニュー1"
Set myButton2 = myPop.Controls.Add(Type:=msoControlButton, Temporary:=True)
myButton2.Caption = "サブメニュー2"
End Sub
- 04: 名前:yoda投稿日:2005/12/27(火) 09:19
- 第2の質問の答: AddメソッドのBeforeパラメータを使えば、よいと思います。たとえば、
.Controls.Add(Type:=msoControlPopup, Before:=1, Temporary:=True)
これも、Excelでコーディングすれば、直接AddメソッドのHelpが使えるので、
すぐ分かります。
- 05: 名前:柏投稿日:2005/12/27(火) 10:07
- yoda様
いつもありがとうございます。サブメニュー追加の件は、上記サンプルにてわかりました。ありがとうございました。
第2の質問の件は、
Private Sub test()
Dim myButton1 As CommandBarButton, myButton2 As CommandBarButton
Dim myPop As CommandBarPopup
'Set myPop = Application.CommandBars("Tools").Controls.Add(Type:=msoControlPopup, Temporary:=True)
Set myPop = Application.CommandBars("Tools").Controls.Add(Type:=msoControlPopup, Before:=1, Temporary:=True)
myPop.Caption = "実行"
myPop.Visible = True
Set myButton1 = myPop.Controls.Add(Type:=msoControlButton, Temporary:=True)
myButton1.Caption = "サブメニュー1"
Set myButton2 = myPop.Controls.Add(Type:=msoControlButton, Temporary:=True)
myButton2.Caption = "サブメニュー2"
End Sub
として、実行したのですが、私外としたのとちょっと違うようです。
私の説明が悪かったのですが、Visioのプルダウンメニューの任意の場所。
たとえば、[書式]と[ツール]の間に挿入したいのです。
[ツール]メニューの配下ではなくトップに表示させたいのですが、可能なものなのでしょうか?
(手動で設定すれば可能なのはわかりますが・・・)
なにとぞよろしくお願いします。
- 06: 名前:yoda投稿日:2005/12/27(火) 10:57
- Set myPop = Application.CommandBars("Menu Bar").Controls.Add(Type:=msoControlPopup, Before:=7, Temporary:=True)
でどうでしょうか?
- 07: 名前:柏投稿日:2005/12/27(火) 11:01
- yoda様
上記指示の通りで、できました。ありがとうございました。
- 08: 名前:柏投稿日:2005/12/27(火) 12:49
- メニューバーにメニューを追加、追加したメニューのサブメニューを追加することはできましたが、さらにそのサブメニュー
を作成することは、可能なのでしょうか?
- 09: 名前:yoda投稿日:2005/12/27(火) 13:10
- 同じようにすれば、できるのではないかと思います。
演習問題として、お試しになってはいかが?
■トップに戻る リロード 単独スレ表示
|