我正在尝试将一些VBA代码转换为Outlook插件,以避免在安全性较低的环境中运行宏。
我知道VBA和VB6足够用于编写我自己使用的东西,这是我第一次涉足VB.Net。
我刚刚安装了Visual Studio(社区版),并且从VBA转换到比我想象的更顺畅,这要归功于除了一两个问题之外IDE的建议。
其中一个是尝试根据此处提供的代码获取Outlook中选择的项目:https://msdn.microsoft.com/en-us/library/office/ff868001.aspx
Sub GetSelectedItems()
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim oMail As Outlook.MailItem
Dim x As Integer
myOlExp = Application.ActiveExplorer ' => This generates an error
myOlSel = myOlExp.Selection
For x = 1 To myOlSel.Count
If myOlSel.Item(x).Class = OlObjectClass.olMail Then
Set oMail = myOlSel.Item(x)
' Do Stuff
End If
Next x
End Sub
我无法解决Application.ActiveExplorer
生成的错误消息。
有关如何将其转换为VB.Net的任何建议?我搜索过高低,但我发现的所有例子都是基于VBA的。
此SO Question已接近但我无法在语言之间实现跨越。
答案 0 :(得分:0)
经过艰苦的学习,我设法使用相当于:
来解决这个问题Imports Microsoft.Office.Interop.Outlook
Sub GetSelectedItems()
Dim myOlApp As Outlook.Application = New Outlook.Application
Dim myOlExp As Outlook.Explorer = myOlApp.ActiveExplorer
Dim myOlSel As Outlook.Selection = myOlExp.Selection
Dim oMail As Outlook.MailItem
Dim x As Integer
For x = 1 To myOlSel.Count
If (TypeOf myOlSel.Item(x).Class is MailItem) Then
oMail = myOlSel.Item(x)
' Do Stuff
End If
Next x
End Sub