VB.Netを使用してVSTOを構築しようとしています。 私は尋ねました、VB.Netでなければなりません。VB.Netの複数のVSTOコンテキストメニューに対応
アプリケーションレベルADDINは私の課題は、子どもの不確定数を持って、コンテキストメニューを構築しようとしているEXCEL
をターゲットに。
私はメニューを作ることができますが、現在のところ、最後のボタンのためにonClickを起動するだけです。
私はこれをかなり徹底的に研究しており、VBの例は見つかりません。 VBには、単純なコンテキストメニューを追加する例がたくさんあります。
は、C#の例がありますが、あなたは、私は、VBでそれゆえの質問にそれを行う方法を見つけ出すためには至っていない。この
cb.Click += cbButton_Clicked;
ような何かを。 コードの全体は以下のとおりです。私は最初の5つのボタンのどれかをクリックすることができ、何も起こりません。最後のものをクリックすると、期待どおりにメッセージボックスが起動します。
不確定な数のメニュー項目があるので、X#ハンドラを追加するだけではありません。
Public Class ThisAddIn
Dim WithEvents cb As CommandBarButton
Dim TradeName As String = "MyMenu"
Private Sub ThisAddIn_Startup() Handles Me.Startup
' AddHandler Application.WorkbookBeforeSave, AddressOf Application_WorkbookBeforeSave
AddHandler Application.NewWorkbook, AddressOf ThisWorkbook_NewWorkbook
End Sub
Private Sub ThisWorkbook_NewWorkbook(wb As Microsoft.Office.Interop.Excel.Workbook)
AddMenu2()
End Sub
Public Function GetCellContextMenu() As Office.CommandBar
Return Application.CommandBars("Cell")
End Function
Public Sub AddMenu2()
Dim Bar As Microsoft.Office.Core.CommandBar
Dim NewControl As Microsoft.Office.Core.CommandBarControl
Try
Application.CommandBars("Cell").Controls(TradeName).Delete()
Catch ex As Exception
End Try
Bar = Application.CommandBars("Cell")
NewControl = Bar.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlPopup, Id:=1, Temporary:=True)
With NewControl
.Caption = TradeName
.BeginGroup = True
.TooltipText = TradeName & " Queries."
End With
Dim ag As New fvConnectionSuperAg
Dim l As List(Of fvConnection) = ag.Items
For Each conn As fvConnection In l
cb = NewControl.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton)
With cb
.Caption = conn.Name.Value
.FaceId = 218
' HERE IS WHERE I THINK I SHOULD CONNECT THE HANDLER
End With
次
End Sub
Private Sub cb_Click(Ctrl As CommandBarButton, ByRef CancelDefault As Boolean) Handles cb.Click
MsgBox(Ctrl.Caption, MsgBoxStyle.ApplicationModal, "Fast View")
End Sub
End Class