Guten Abend zusammen,
ich würde gerne mir meine heutigen Termine Anzeigen lassen. Dabei hatte ich mir bereits aus Codeschnipseln in VBA folgendes gebastelt:
Ich habe zwar schon ein ähnliches Thema im Forum entdeckt, leider zeigt dieses bspw. keine Terminserien usw. an. Der obige Code als Excel-Makro schon.
Meine Frage wäre ob mir jemand dabei helfen könnte, den obigen VBA Code als VB.Net Code zu übersetzen.
Ich habe mich bereits mehrere Stunden daran versucht, dabei ist folgendes entstanden (ist aber leider nicht lauffähig) :
EDIT: Outlook-Verweise sind gesetzt.
Bin für jede Hilfe Dankbar
Beste Grüße
Katja
ich würde gerne mir meine heutigen Termine Anzeigen lassen. Dabei hatte ich mir bereits aus Codeschnipseln in VBA folgendes gebastelt:
Visual Basic-Quellcode
- Sub FindApptsInTimeFrame()
- Dim myStart As Date
- Dim myEnd As Date
- Dim oCalendar As Outlook.folder
- Dim oItems As Outlook.items
- Dim oResItems As Outlook.items
- Dim oAppt As Outlook.AppointmentItem
- Dim strRestriction As String
- Dim i As Long
- Dim strh As String
- Dim strhh As String
- Dim xx() As String
- Dim co As Integer
- myStart = Format(Now - 1, "dd.mm.yyyy")
- myEnd = DateAdd("d", 5, myStart)
- Debug.Print "Start:", myStart
- Debug.Print "End:", myEnd
- Set oCalendar = Outlook.Application.session.GetDefaultFolder(olFolderCalendar)
- Set oItems = oCalendar.items
- oItems.IncludeRecurrences = True
- oItems.Sort "[Start]"
- strRestriction = "[Start] <= '" & Format$(myEnd, "mm/dd/yyyy hh:mm AMPM") _
- & "' AND [End] >= '" & Format(myStart, "mm/dd/yyyy hh:mm AMPM") & "'"
- Debug.Print strRestriction
- 'Restrict the Items collection
- Set oResItems = oItems.Restrict(strRestriction)
- i = 6
- strhh = Format(Now, "dd.mm.yyyy")
- For Each oAppt In oResItems
- strh = oAppt.Start
- Debug.Print strhh & " " & strh
- 'If InStr(strh, strhh) Then
- If InStr(oAppt.Start, Format(Now, "dd.mm.yyyy")) Then
- ReDim Preserve xx(co)
- 'Cells(i, 2).Value = oAppt.Start
- 'Cells(i, 1).Value = oAppt.Subject
- xx(co) = oAppt.Subject & " " & oAppt.Start
- co = co + 1
- End If
- i = i + 1
- Next
- Dim msgString As String
- msgString = Join(xx, vbCr)
- MsgBox "Heutige Termine:" & vbCr & msgString
- End Sub
Ich habe zwar schon ein ähnliches Thema im Forum entdeckt, leider zeigt dieses bspw. keine Terminserien usw. an. Der obige Code als Excel-Makro schon.
Meine Frage wäre ob mir jemand dabei helfen könnte, den obigen VBA Code als VB.Net Code zu übersetzen.
Ich habe mich bereits mehrere Stunden daran versucht, dabei ist folgendes entstanden (ist aber leider nicht lauffähig) :
VB.NET-Quellcode
- Me.Height = 489
- Me.Width = 816
- Dim myStart As Date
- Dim myEnd As Date
- Dim oCalendar As Microsoft.Office.Interop.Outlook.Folder
- Dim oItems As Microsoft.Office.Interop.Outlook.Items
- Dim oResItems As Microsoft.Office.Interop.Outlook.Items
- Dim oAppt As Microsoft.Office.Interop.Outlook.AppointmentItem
- Dim strRestriction As String
- Dim i As Long
- Dim strh As String
- Dim strhh As String
- Dim xx() As String
- Dim co As Integer
- myStart = Format(DateAndTime.Now, "dd.mm.yyyy")
- myEnd = DateAdd("d", 5, myStart)
- 'Debug.Print "Start:", myStart
- 'Debug.Print "End:", myEnd
- oCalendar = Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar)
- oItems = oCalendar.Items
- oItems.IncludeRecurrences = True
- oItems.Sort "[Start]"
- strRestriction = "[Start] <= '" + Format$(myEnd, "mm/dd/yyyy hh:mm AMPM") _
- + "' AND [End] >= '" + Format(myStart, "mm/dd/yyyy hh:mm AMPM") + "'"
- 'Debug.Print strRestriction
- 'Restrict the Items collection
- oResItems = oItems.Restrict(strRestriction)
- i = 6
- strhh = Format(Now, "dd.mm.yyyy")
- For Each oAppt In oResItems
- strh = oAppt.Start
- ' Debug.Print strhh + " " + strh
- 'If InStr(strh, strhh) Then
- If InStr(oAppt.Start, Format(Now, "dd.mm.yyyy")) Then
- ReDim Preserve xx(co)
- 'Cells(i, 2).Value = oAppt.Start
- 'Cells(i, 1).Value = oAppt.Subject
- xx(co) = oAppt.Subject + " " + oAppt.Start
- co = co + 1
- End If
- i = i + 1
- Next
- Dim msgString As String
- msgString = Join(xx, vbCr)
- MessageBox.Show("Heutige Termine:" + vbCr + msgString)
EDIT: Outlook-Verweise sind gesetzt.
Bin für jede Hilfe Dankbar
Beste Grüße
Katja