KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

VB/VBAトップへ ▼カッ飛び最後 

  複数のカスタムツールバー、メニューの作成について

01: 名前:ヨタロウ投稿日:2007/09/06(木) 11:44
日ごろから参考にさせていただいてます。

Visio2003、WinXP、VisualStudio2003(C#)で、カスタマイズをしてます。

カスタムツールバーも、メニューも、
すでに1つは、プログラムでつくりだしていますが、
これを、さらに、別のカスタムツールバーを増やしたり、
別メニュー項目を増やしたりできるのでしょうか?

カスタムツールバー自体は、増やせたのですが、
ツールバー上のボタンを押した場合のイベント処理時に、
ActiveDocumentのCustomToolBarが、
旧と新のツールバーの区別がついてないようなので、
新のツールバーが動くときは、旧のツールバーがエラーになってしまいます。

多分プログラムの組み方がおかしいのでしょうが、
どのようにすればよいのか、わからないため、困っている次第です。

ご教授よろしくお願い致します。

02: 名前:yoda投稿日:2007/09/06(木) 12:44
試してみたことがないのですが、ツールバーやボタンのの名前は
区別しているのでしょうか?

03: 名前:ヨタロウ投稿日:2007/09/06(木) 13:14
ツールバーとボタンのCaption共に、一意のものを設定してあります。
メニューについては、まだ試してませんが、
CustomMenuも、CustomToolbarと同様な気がしますので、
うまくいかない気もします。

04: 名前:yoda投稿日:2007/09/06(木) 15:41
簡単なプログラムで、ツールバーを二つ作って見ました。
へたくそなので、重なってできてしまいましたが、
それ以外は、問題ないようです。
Option Explicit

Public Sub ToolbarItems_Example()

Dim vsoUIObject As Visio.UIObject
Dim vsoToolbarSet As Visio.ToolbarSet
Dim vsoToolbarItems As Visio.ToolbarItems
Dim vsoToolbarItem As Visio.ToolbarItem

Set vsoUIObject = Visio.Application.BuiltInToolbars(0)
Set vsoToolbarSet = vsoUIObject.ToolbarSets.ItemAtID(visUIObjSetDrawing)

Dim N As Long, I As Long
N = vsoToolbarSet.Toolbars.Count

vsoToolbarSet.Toolbars.Add
N = vsoToolbarSet.Toolbars.Count
Set vsoToolbarItems = vsoToolbarSet.Toolbars(N - 1).ToolbarItems
Set vsoToolbarItem = vsoToolbarItems.AddAt(0)
vsoToolbarItem.CntrlType = visCtrlTypeBUTTON
vsoToolbarItem.CmdNum = visCmdPanZoom
vsoToolbarItem.FaceID = 100

vsoToolbarSet.Toolbars.Add
Set vsoToolbarItems = vsoToolbarSet.Toolbars(N).ToolbarItems
Set vsoToolbarItem = vsoToolbarItems.AddAt(0)
vsoToolbarItem.CntrlType = visCtrlTypeBUTTON
vsoToolbarItem.CmdNum = visCmdCustProp
vsoToolbarItem.FaceID = 200

ThisDocument.SetCustomToolbars vsoUIObject

End Sub

05: 名前:ヨタロウ投稿日:2007/09/26(水) 17:48
yoda様
お世話になります。

遅くなりましたが、上記のプログラムをヒントに、
実現解が見つかりました。
ありがとうございました。


VB/VBAトップへ ▲カッ飛び先頭