2016-12-14 4 views
0

現在、添付ファイルの名前をSubjectとして使用するOutlookでマクロを使用しています。VBA(Outlook 2010)を使用してテキストの一部を削除する

マクロがある:

Sub AttachmentNameAsSubject() 

Dim AttachmentName As String 
Dim currItem As Object 

Set currItem = ActiveInspector.CurrentItem 

With currItem 
    If .Attachments.Count > 0 Then 
     AttachmentName = .Attachments.Item(1).DisplayName 
     .Subject = AttachmentName 
    End If 

End With 
End Sub 

添付ファイルがある場合にアタッチメントは、典型的には、PDFファイルまたは.xlsファイルのいくつかの種類である:「MyAttachment.pdf」、件名が「MyAttachment.pdfを読み取り"

件名の行が「MyAttachment」と単に読み込まれ、「.pdf」などの拡張子が含まれないように、件名の末尾にテキストを削除する方法はありますか。

+1

あなたが使用Left関数:左(.Attachments.Item(1).DisplayName、レン(.Attachments.Item(1).DisplayName) - 4) – Sorceri

+1

拡張は4つの以上の文字とすることができる場合InStr(1、.Attachments.Item(1).DisplayName、 "。") - 1) – Sorceri

+0

これはちょうど依存しています内線でほとんどの場合、拡張子が4文字(「.pdf」などのピリオドを含む)であると感じます。それ以外の時間は5-7文字です。 – Darren

答えて

1

おそらく、これはより簡単です(前の期間から何もドロップしません)。

Function DropExtension(sName As String) As String 
    If InStr(1, sName, ".", vbTextCompare) = 0 Then 
     DropExtension = sName ' No file extension 
    Else 
     DropExtension = Left(sName, InStrRev(sName, ".") - 1) 
    End If 
End Function 
+0

私はこの既存の機能を維持したいと思っていただけでなく、添付ファイルの名前を電子メールの本文に追加したいのではないかと不思議です。 – Darren

+0

メールアイテムであれば '.Body'や' .HTMLBody'を使うことができます。ほとんどの項目タイプには操作できる '.Body'があります。 – PatricK

関連する問題