【问题标题】:VBA to C# conversion in Visual Studio 2010Visual Studio 2010 中的 VBA 到 C# 转换
【发布时间】:2014-05-30 04:01:10
【问题描述】:

我正在使用带有 VSTO 的 Visual Studio 2010。目前,我正在努力在输入电子邮件后通过功能区按钮修改正文的内容。

我知道 Word 编辑器是 Outook 2007 中的默认编辑器。那么在检查器窗口(撰写邮件窗口)使用文字编辑器时,如何获取正文的文本以执行搜索和替换操作?

我在 VBA 中有一个宏代码,它工作得非常好。我想将此代码转换为 C sharp,当在撰写邮件窗口中单击功能区按钮时,它将起作用。

Sub ASAtoHyperlinkCompose()

 Dim uiInspector As Outlook.Inspector

 Dim uiObject  As Object

 Dim uiItem   As Outlook.MailItem

 Dim uiDoc   As Word.Document

 Set uiInspector = Application.ActiveInspector

 Set uiObject = uiInspector.CurrentItem

 If uiObject.MessageClass = "IPM.Note" And _

  uiInspector.IsWordMail = True Then

  Set uiItem = uiInspector.CurrentItem

  Set uiDoc = uiInspector.WordEditor

  With uiDoc.Range.Find

   .Text = "ASA^$^$^#^#^#^#^#"

   While .Execute

   .Parent.Hyperlinks.Add .Parent, _

  "http://stack.com=" & .Parent.Text & "outlook2007"

    .Parent.Collapse wdCollapseEnd

   Wend

  End With

  End If

End Sub

【问题讨论】:

    标签: c# visual-studio-2010 vba outlook vsto


    【解决方案1】:

    我不熟悉 Outlook 的自动化和工具包。这或多或少与转换为 C# 的代码相同。如果没有别的,那就是一个开始。没有 C# 等效的 With 语句仅供参考。

    private void ASAtoHyperlinkCompose()
       {                                           
           var uiInspector = Application.ActiveInspector;
    
           var uiObject = uiInspector.CurrentItem;
    
           if (uiObject.MessageClass.ToString().Equals("IPM.Note") && uiInspector.IsWordMail)
           {
               var uiItem = uiInspector.CurrentItem;
    
               var uiDoc = uiInspector.WordEditor;
    
               uiDoc.Range.Find.Text = "ASA^$^$^#^#^#^#^#";
    
               while (uiDoc.Range.Find.Execute())
               {
                   uiDoc.Range.Find.Parent.Hyperlinks.Add(uiDoc.Range.Find.Parent, string.Format(@"http://stack.com={0}outlook2007", uiDoc.Range.Find.Parent.Text));
                   uiDoc.Range.Find.Parent.Collapse(wdCollapseEnd);
    
               }
           }
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多