2011-06-18 6 views
0

私の徹底的な宿題の後、私はこの質問を投稿しています。身体の特定のIDを特定のハイパーリンクに置き換えてください

テキストの本文でASA1234yyを検索し、埋め込みハイパーリンク[ASA1234yy] [1]に置き換えたいと考えています このタイプのIDは、それぞれ本文と各theriハイパーリンクは、これまで

Sub ConvertToHyperlink(MyMail As MailItem) 
Dim strID As String 
Dim Body As String 
Dim objMail As Outlook.MailItem 
Dim temp As String 
Dim RegExpReplace As String 
Dim RegX As Object 
strID = MyMail.EntryID 

Set objMail = Application.Session.GetItemFromID(strID) 
Body = objMail.Body 
Body = Body + "Test" 
objMail.Body = Body 

Set RegX = CreateObject("VBScript.RegExp") 
With RegX 
.Pattern = "ASA[0-9][0-9][0-9][0-9][a-z][a-z]" 
.Global = True 
.IgnoreCase = Not MatchCase 
End With 
RegExpReplace = RegX.Replace(Body, "http://www.code.com/ABCD") 

Set RegX = Nothing 
objMail.Body = RegExpReplace 
objMail.Save 
Set objMail = Nothing 
End Sub 

このコードは、全体のIDのみを置き換える行わパターン

コードに続く一意である必要があります。ハイパーリンクにIDを追加するにはどうすればいいですか? を追加した後、埋め込みハイパーリンクが必要です。

おかげで[OK]を、私の変更のアイデア以下


...

こんにちは..私は下記の方法で二つの問題に直面しています

..

変換指定したテキストOutlookのmailitemからWord文書のハイパーリンクに抽出し、Outlookのmailitemに保存します。 受信メールすなわち

- > Word文書でそれを保存 - hyperlinks-に>変更テキスト>保存は、私のコードは唯一の最初のoccuringテキストを見つけたOutlookのメールアイテム

  1. にWord文書を変更文書を作成し、それをハイパーリンクに置き換えて他の文書を残す。

  2. 文書の内容を変更した後、文書の内容をOutlookのmailitemにコピーしたい。

  3. メールにテーブルなどがある場合、フォーマットが失われます。

ここにあなたのための私のコード ...

Sub IncomingHyperlink(MyMail As MailItem) 
    Dim strID As String 
    Dim Body As String 
    Dim objMail As Outlook.MailItem 
    Dim temp As String 
    Dim RegExpReplace As String 
    Dim RegX As Object 
    Dim myObject As Object 
    Dim myDoc As Word.Document 
    Dim mySelection As Word.Selection 

    strID = MyMail.EntryID 
    Set objMail = Application.Session.GetItemFromID(strID) 

    Set objWord = CreateObject("Word.Application") 
    objWord.Visible = True 

    Set objDoc = objWord.Documents.Add() 
    Set objSelection = objWord.Selection 
    objSelection.TypeText "GOOD" & objMail.Body 

    With objSelection.Find 
    .ClearFormatting 
    .Text = "ASA[a-z][a-z][0-9][0-9][0-9][0-9][0-9]" 
    .Forward = True 
    .Wrap = wdFindAsk 
    .MatchWildcards = True 
    End With 
    'Find next instance of Pattern "ASA[a-z][a-z][0-9][0-9][0-9][0-9]" 
    objSelection.Find.Execute 

    'Replace it with a hyperlink 
    objSelection.Hyperlinks.Add Anchor:=objSelection.Range, _ 
    Address:="http://www.code.com/" & objSelection.Text, _ 
    TextToDisplay:=objSelection.Text 

    objDoc.SaveAs ("C:\Desktop\testdoc.doc") 
    objWord.Quit 

    objMail.Body = objSelection.Paste 
    objMail.Save 
    Set objMail = Nothing 
End Sub 

あなたはこの2つの問題を解決する助けてくださいことはできますか?

+0

こんにちは、私はかなりありませんよこれを理解する。置き換えの前と後で、テキストがどのように見えるかのサンプルを投稿できますか?私はサンプルで、私と他のユーザーに役立つかもしれないと思います。ありがとう! –

+0

再度私の質問:特定のパターンのテキストを受信メールのハイパーリンクに置き換えてください。たとえば:ASA123ddをASA123ddとして表示するには、リンクをクリックするとリンクcode.com/ASA123dd/exampleのWebサイトにリダイレクトする必要があります。「body」という文字列を使用して、着信メール。 – thinkcool

+0

最新の質問を回答として投稿しないでください。あなたのオリジナルの質問を編集するか、物事が面倒すぎる場合は新しい質問を投稿してください。この場合、あなたのことは新しい質問です。この質問への回答を受け入れ、新しい質問を投稿してください。 –

答えて

0

提案:Wordの組み込みのFindメソッドを使用してください。

'Set up search 
With Selection.Find 
    .ClearFormatting 
    .Text = "ASA[0-9][0-9][0-9][0-9][a-z][a-z]" 
    .Forward = True 
    .Wrap = wdFindAsk 
    .MatchWildcards = True 
End With 

' Find next instance of Pattern "ASA[0-9][0-9][0-9][0-9][a-z][a-z]" 
Selection.Find.Execute 

' Replace it with a hyperlink 
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _ 
    Address:="http://www.code.com/" & Selection.Text, _ 
    TextToDisplay:=Selection.Text 

上記には、テキストが保持されます。 "ASA5534yy"とハイパーリンクhttp://www.code.com/ASA5534yyを挿入します(適切に調整します)。

+0

こんにちは..ありがとうございますが、私は単語文書を使用していません。私は体として受信メールを使用しています。あなたのコードは文書であるときにのみ動作します。再度私の質問:受信した電子メールのハイパーリンクに特定のパターンのテキストを置き換えます。たとえば:ASA123ddをASA123ddとして表示するには、クリックするとリンクhttp://www.code.com/ASA123dd/example – thinkcool

+0

Aha * incoming * mailのWebサイトにリダイレクトする必要があります。これはあなたの質問には述べられていません。私の答えは、Outlookで作成されたメール(エディタとしてWordを使用している)です。 –

+0

こんにちは...回答セクションに新しいコードを掲載しました。今問題を特定して解決してもらえますか? – thinkcool

1

今、私はあなたを理解していると思います。名前付きグループを使用します。

この正規表現パターンでスタート:

(?<key>ASA\d{3}[a-z]{2})

そして、置換パターンのためにこれを使用します。

<a href=http://code.com${key}/example>${key}</a>

--dave

+0

こんにちはデイブ、これは、ハイパーリンク自体を置き換えませんで新しい質問を解決するために私を助けてください。あなたのために私の変更されたコード.. – thinkcool

+0

あなたのコードを 'code'でフォーマットしてください。これはまた、SOが "

関連する問題