- - PR -
Outlookのメールアイテムにメニューを追加する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-03 22:58
お世話になっております。
以下の環境にてOutlookのCOMアドインの開発を行っています。 Windows XP Pro P2 VS 2003 VB.NET Office 2003 Outlook起動時にメールアイテムにメニューを追加する処理を行っているのですが 以下のエラーが発生し正常に動作しません。 「オブジェクト参照がオブジェクトインスタンスに設定されていません。」 インスタンスを設定する必要があるのですが、 Dim obrMenus As _CommandBars = New CommandBars() などど宣言すると以下のエラーが発生しコンパイルできません。 「Microsoft.Office.Core.CommandBarsClass Private Sub New() はコンテキストであるため'Private'ではアクセスできません」 どのようにインスタンスを設定すれば正常に動作するのでしょうか? いろいろ調べたのですが解決策が見つかりません。 よろしくお願いいたします。以下ソースになります。 ------------------------------------------------------------------------------ Imports Microsoft.Office.Core imports Extensibility Imports System.Runtime.InteropServices Imports Outlook = Microsoft.Office.Interop.Outlook '******************* 省略 ********************************************* Public Class Connect Implements Extensibility.IDTExtensibility2 Public g_objAppInstance As New Outlook.Application Dim applicationObject As Object dim addInInstance as object '******************* 省略 ********************************************* Public Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection applicationObject = application addInInstance = addInInst Dim oMailItem As Outlook.MailItem Dim oInspector As Outlook.Inspector Dim obrMenus As _CommandBars Dim cbrMenu As CommandBar Dim ctlBtnAddIn As CommandBarButton g_objAppInstance = application Try oMailItem = g_objAppInstance.CreateItem(Outlook.OlItemType.olMailItem) 'メニュー作成 oInspector = oMailItem.GetInspector obrMenus = oInspector.CommandBars cbrMenu = obrMenus.Item("Tools") ←ここで「オブジェクト参照がオブジェクトインスタンスに設定されていません。」のエラーが発生 ctlBtnAddIn = cbrMenu.FindControl(Tag:="AddrBook-Form-M") If ctlBtnAddIn Is Nothing Then ctlBtnAddIn = cbrMenu.FindControls.Add(Type:=MsoControlType.msoControlButton, Parameter:="AddrBook-Form-M") With ctlBtnAddIn .Caption = "テストメニュー" .Tag = "AddrBook-Form-M" .Style = MsoButtonStyle.msoButtonCaption .OnAction = "!<" & addInInstance.ProgId & ">" End With End If Catch ex As Exception MsgBox(ex.Message) Finally oMailItem.Close(Outlook.OlInspectorClose.olDiscard) End Try End Sub End Class ------------------------------------------------------------------------------- | ||||
|
投稿日時: 2008-03-04 10:01
自信があるわけではありませんが。 こういったものは CommandBars に Create メソッドや Add メソッドなどがあり、追加しがてら取得できるようなモデルが多いです。 VSTO でもそうなっています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1