Note: The other languages of the website are Google-translated. Back to English

Outlook:XNUMXつの電子メールからすべてのURLを抽出する方法

電子メールにテキストファイルに抽出する必要のある数百のURLが含まれている場合、それらをXNUMXつずつコピーして貼り付けるのは面倒な作業になります。 このチュートリアルでは、電子メールからすべてのURLをすばやく抽出できるVBAを紹介します。

XNUMXつの電子メールからテキストファイルにURLを抽出するVBA

複数の電子メールからExcelファイルにURLを抽出するVBA

Officeタブ-Officeでタブ付きの編集と閲覧を有効にし、作業をはるかに簡単にします...
Kutools for Outlook-100の強力な高度な機能をMicrosoftOutlookにもたらします
  • 自動CC / BCC メール送信時のルールによる。 自動転送 ルールによる複数の電子メール。 自動返信 Exchangeサーバーなし、およびより多くの自動機能...
  • BCC警告 -メールアドレスがBCCリストにある場合、すべてに返信しようとするとメッセージを表示します。 添付ファイルがない場合に通知する、その他の機能を思い出させる...
  • すべての添付ファイルで(すべて)返信 メールでの会話。 一度に多くのメールに返信します。 あいさつを自動追加 返信するとき; 件名に日付と時刻を自動追加...
  • アタッチメントツール:自動デタッチ、すべて圧縮、すべての名前変更、すべて自動保存... クイックレポート、選択したメールを数える、 重複するメールと連絡先を削除する...
  • 100以上の高度な機能が あなたの問題のほとんどを解決します Outlook2010-2019および365で。全機能60日間の無料トライアル。

XNUMXつの電子メールからテキストファイルにURLを抽出するVBA

 

1. URLを抽出するメールを選択し、を押します 他の + F11 有効にするキー アプリケーション向け Microsoft Visual Basic 窓。

2。 クリック インセット > モジュール 新しい空のモジュールを作成するには、以下のコードをコピーしてモジュールに貼り付けます。

VBA:XNUMXつの電子メールからテキストファイルにすべてのURLを抽出します。

Sub ExportUrlToTextFileFromEmail()
'UpdatebyExtendoffice20220413
  Dim xMail As Outlook.MailItem
  Dim xRegExp As RegExp
  Dim xMatchCollection As MatchCollection
  Dim xMatch As Match
  Dim xUrl As String, xSubject As String, xFileName As String
  Dim xFs As FileSystemObject
  Dim xTextFile As Object
  Dim i As Integer
  Dim InvalidArr
  On Error Resume Next
  If Application.ActiveWindow.Class = olInspector Then
    Set xMail = ActiveInspector.CurrentItem
  ElseIf Application.ActiveWindow.Class = olExplorer Then
    Set xMail = ActiveExplorer.Selection.Item(1)
  End If
  Set xRegExp = New RegExp
  With xRegExp
    .Pattern = "(https?[:]//([0-9a-z=\?:/\.&-^!#$;_])*)"
    .Global = True
    .IgnoreCase = True
  End With
  If xRegExp.test(xMail.Body) Then
    InvalidArr = Array("/", "\", "*", ":", Chr(34), "?", "<", ">", "|")
    xSubject = xMail.Subject
    For i = 0 To UBound(InvalidArr)
      xSubject = VBA.Replace(xSubject, InvalidArr(i), "")
    Next i
    xFileName = "C:\Users\Public\Downloads\" & xSubject & ".txt"
    Set xFs = CreateObject("Scripting.FileSystemObject")
    Set xTextFile = xFs.CreateTextFile(xFileName, True)
    xTextFile.WriteLine ("Export URLs:" & vbCrLf)
    Set xMatchCollection = xRegExp.Execute(xMail.Body)
    i = 0
    For Each xMatch In xMatchCollection
      xUrl = xMatch.SubMatches(0)
      i = i + 1
      xTextFile.WriteLine (i & ". " & xUrl & vbCrLf)
    Next
    xTextFile.Close
    Set xTextFile = Nothing
    Set xMatchCollection = Nothing
    Set xFs = Nothing
    Set xFolderItem = CreateObject("Shell.Application").NameSpace(0).ParseName(xFileName)
    xFolderItem.InvokeVerbEx ("open")
    Set xFolderItem = Nothing
  End If
  Set xRegExp = Nothing
End Sub

このコードでは、電子メールの件名で名前が付けられ、パスに配置された新しいテキストファイルが作成されます。 C:\ Users \ Public \ Downloads、必要に応じて変更できます。

doc extract url 1

3。 クリック 工具 > リファレンス 有効にする 参考資料–プロジェクト1 ダイアログで、チェックマークを付けます MicrosoftVBScript正規表現5.5 チェックボックス。 クリック OK.

doc extract url 1

doc extract url 1

4。 押す F5 キーまたはクリック ラン ボタンをクリックしてコードを実行すると、テキストファイルがポップアップ表示され、すべてのURLがその中に抽出されます。

doc extract url 1

doc extract url 1

注意:Outlook2010およびOutlook365を使用している場合は、手順3の[Windows Script HostObjectModel]チェックボックスもオンにしてください。次に[OK]をクリックします。


複数の電子メールからExcelファイルにURLを抽出するVBA

 

選択した複数の電子メールからExcelファイルにURLを抽出する場合は、以下のVBAコードが役立ちます。

1. URLを抽出するメールを選択し、を押します 他の + F11 有効にするキー アプリケーション向け Microsoft Visual Basic 窓。

2。 クリック インセット > モジュール 新しい空のモジュールを作成するには、以下のコードをコピーしてモジュールに貼り付けます。

VBA:複数の電子メールからExcelファイルにすべてのURLを抽出します

'UpdatebyExtendoffice20220414
Dim xExcel As Excel.Application
Dim xExcelWb As Excel.Workbook
Dim xExcelWs As Excel.Worksheet

Sub ExportAllUrlsToExcelFromMultipleEmails()
  Dim xMail As MailItem
  Dim xSelection As Selection
  Dim xWordDoc As Word.Document
  Dim xHyperlink As Word.Hyperlink
  On Error Resume Next
  Set xSelection = Outlook.Application.ActiveExplorer.Selection
  If (xSelection Is Nothing) Then Exit Sub
  Set xExcel = CreateObject("Excel.Application")
  Set xExcelWb = xExcel.Workbooks.Add
  Set xExcelWs = xExcelWb.Sheets(1)
  xExcelWb.Activate
  With xExcelWs
    .Range("A1") = "Subject"
    .Range("B1") = "DisplayText"
    .Range("C1") = "Link"
  End With
  With xExcelWs.Range("A1", "C1").Font
    .Bold = True
    .Size = 12
  End With
  For Each xMail In xSelection
    Set xWordDoc = xMail.GetInspector.WordEditor
    If xWordDoc.Hyperlinks.Count > 0 Then
      For Each xHyperlink In xWordDoc.Hyperlinks
          Call ExportToExcelFile(xMail, xHyperlink)
      Next
    End If
  Next
  xExcelWs.Columns("A:C").AutoFit
  xExcel.Visible = True
End Sub

Sub ExportToExcelFile(curMail As MailItem, curHyperlink As Word.Hyperlink)
  Dim xRow As Integer
  xRow = xExcelWs.Range("A" & xExcelWs.Rows.Count).End(xlUp).Row + 1
  With xExcelWs
    .Cells(xRow, 1) = curMail.Subject
    .Cells(xRow, 2) = curHyperlink.TextToDisplay
    .Cells(xRow, 3) = curHyperlink.Address
  End With
End Sub

このコードでは、すべてのハイパーリンクと対応する表示テキストおよび電子メールの件名を抽出します。

doc extract url 1

3。 クリック 工具 > リファレンス 有効にする 参考資料–プロジェクト1 ダイアログ、チェックマーク Microsoft Excel16.0オブジェクトライブラリ 及び Microsoft Word16.0オブジェクトライブラリ チェックボックス。 クリック OK.

doc extract url 1

doc extract url 1

4.次に、カーソルをVBAコード内に置き、を押します。 F5 キーまたはクリック ラン ボタンをクリックしてコードを実行すると、ワークブックがポップアップ表示され、すべてのURLが抽出されたので、フォルダーに保存できます。

doc extract url 1

注意:上記のすべてのVBAは、すべてのタイプのハイパーリンクを抽出します。


Kutools for Outlook-100の高度な機能をOutlookにもたらし、作​​業をはるかに簡単にします!

  • 自動CC / BCC メール送信時のルールによる。 自動転送 カスタムによる複数の電子メール。 自動返信 Exchangeサーバーなし、およびより多くの自動機能...
  • BCC警告 -全員に返信しようとするとメッセージを表示する メールアドレスがBCCリストにある場合; 添付ファイルがない場合に通知する、その他の機能を思い出させる...
  • メール会話のすべての添付ファイルで(すべて)返信; 多くのメールに返信する すぐに; あいさつを自動追加 返信するとき; 件名に日付を追加...
  • 添付ファイルツール:すべてのメールのすべての添付ファイルを管理し、 自動デタッチ, すべて圧縮、すべての名前を変更、すべて保存...クイックレポート、 選択したメールを数える...
  • 強力な迷惑メール 習慣による; 重複するメールと連絡先を削除する... Outlookでよりスマートに、より速く、より良くすることができます。
ショットkutoolsの見通しkutoolsタブ1180x121
ショットkutoolsの見通しkutoolsプラスタブ1180x121
 
コメントを並べ替える
コメント (0)
まだ評価はありません。 最初に評価してください!
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0  文字
推奨される場所