2017-04-19 19 views
0

一部のVBAをOutlookアドインに変換しようとしています。私はVSTOに慣れていないし、Outlookオブジェクトモデルの専門家もいないので、以下のコードのThisAddin_Startup部分に正確に何を書き込んで、リマインダーイベントがApplication_Reminderのコードを効果的に発するようにするのに問題があります。私の目標は、リマインダのウィンドウを探して、それに焦点を当てるリマインダのコードを起動させることです。Outlookアドインでリマインダーイベントを設定する方法

Imports System.Windows.Forms 
Public Class ThisAddin 
    Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long 
    Private Const SWP_NOSIZE = &H1 
    Private Const SWP_NOMOVE = &H2 
    Private Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE 
    Private Const HWND_TOPMOST = -1 
    Dim WithEvents objOutlook As Outlook.Application 

    Private Sub ThisAddin_Startup() Handles Me.Startup 

    End Sub 

    Private Sub Application_Reminder(ByVal Item As Object) 
     Try 
      Dim ReminderWindowHWnd As Object 
      'Loop 25 times as FindWindowA needs exact title which varies according to number of reminder items... 
      Dim iReminderCount As Integer 
      For iReminderCount = 1 To 25 
       'Try two syntaxes... 
       ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Reminder") : SetWindowPos(ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) 
       ReminderWindowHWnd = FindWindowA(vbNullString, iReminderCount & " Reminder(s)") : SetWindowPos(ReminderWindowHWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) 
      Next 
      Exit Sub 
     Catch 
      MessageBox.Show(Err.Number & " - " & Err.Description) ' & " (iReminderCount = " & iReminderCount & ")") 
     End Try 
    End Sub 
End Class 

ありがとうございました!あなたはまた、objOutlook宣言を取り除くことができます

Private Sub Application_Reminder(Item As Object) Handles Application.Reminder 

End Sub 

答えて

1

イベントは、ワイヤそれをハンドラが不足しています。 ApplicationオブジェクトはThisAddinクラスに固有であり、宣言する必要はありません。使用可能なすべてのアプリケーションイベントがメンバーのドロップダウンに表示されます。 1つを選択すると、イベントハンドラが作成されます。

+0

私はそれが何か簡単だろうと知っていました。それはうまくいった。ありがとう、エリック! – Ryk

関連する問題