次のコードがあります
Sub RemoveInvalidChar(myMail As MailItem)
If myMail.Subject <> vbNullString Then
strname = myMail.Subject
Else
End If
strname = Replace(strname, "&", "and")
End Sub
基本的に、 & char を単語に置き換えて、ルールを使用したいと考えています。うまくいかないようです。
myMail.Subject を新しい文字列に設定していません。以下の行を追加します。
myMail.Subject = strname
ただし、myMail
ByRef を送信していることを確認してください。
enderland - 昨日、なんとか答えにたどり着きましたが、結果を投稿できませんでした。
mymail.save がありませんでした
とにかく、私のコードは以下にあり、動作します。Ltrim は、件名の前にあるスペースを削除するだけです。
Sub RemoveInvalidChar(myMail As MailItem)
Dim strname As String
Dim sreplace As String
sreplace = "and"
strname = LTrim(myMail.Subject)
strname = Replace(strname, "&", sreplace)
myMail.Subject = strname
myMail.Save
End Sub
Sub RemoveInvalidChar(myMail As MailItem)
If myMail.Subject <> vbNullString Then
'set the actual subject to a new subject
myMail.Subject= Replace(myMail.Subject, "&", "and")
'get in the habit of saving email when you change it via vba
'as there will be a lot of cases where you get burned for this
myMail.Save
End If
End Sub
これが機能しない場合は、ブレークポイントを追加し、実際にルールを介して適切にマクロを呼び出していることを確認してください。