millefeuille氏の「マイクロソフト・インサイド・アウト」というブログに、「Outlook Tips | HTML メールのソース編集をするマクロ」に、Outlookで作成中のメールをNotePadで編集する方法が紹介されていました。
これは、HTMLBodyだったのですが、これを単純なテキスト(Body)だけにして、秀丸エディタを呼び出すように修整してみました。あと、一時ファイルを作って、それを仲介させていたのですが、その一時ファイル名も、メールのタイトルと日時から生成するように調整してみました。
--- 以下が修整したOutlook2003のVBA ---
Sub RunEditor()
Dim objShell As Object
Dim objFso As Object
Dim strSubject As String
Dim strFileName As String
Dim stmFile As Object
Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
' タイトルの取得
If ActiveInspector.CurrentItem.Subject <> "" Then
strSubject = ActiveInspector.CurrentItem.Subject
Else
strSubject = "(無題)"
End If
' タイトルと日時から一時ファイル名を生成
strFileName = objShell.ExpandEnvironmentStrings("%temp%") & strSubject & Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) & Second(Time) & ".txt"
' 一時ファイルの作成とメッセージの本文の書き出し
Set stmFile = objFso.CreateTextFile(strFileName, True)
stmFile.WriteLine ActiveInspector.CurrentItem.Body
stmFile.Close
' 秀丸エディタの起動
objShell.Run "C:Progra~1HidemaruHidemaru.exe " & strFileName, , True
' 編集済みの一時ファイルからの読み出し
Set stmFile = objFso.OpenTextFile(strFileName, 1)
ActiveInspector.CurrentItem.Body = stmFile.ReadAll
stmFile.Close
objFso.DeleteFile strFileName
End Sub
これは、HTMLBodyだったのですが、これを単純なテキスト(Body)だけにして、秀丸エディタを呼び出すように修整してみました。あと、一時ファイルを作って、それを仲介させていたのですが、その一時ファイル名も、メールのタイトルと日時から生成するように調整してみました。
--- 以下が修整したOutlook2003のVBA ---
Sub RunEditor()
Dim objShell As Object
Dim objFso As Object
Dim strSubject As String
Dim strFileName As String
Dim stmFile As Object
Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
' タイトルの取得
If ActiveInspector.CurrentItem.Subject <> "" Then
strSubject = ActiveInspector.CurrentItem.Subject
Else
strSubject = "(無題)"
End If
' タイトルと日時から一時ファイル名を生成
strFileName = objShell.ExpandEnvironmentStrings("%temp%") & strSubject & Year(Date) & Month(Date) & Day(Date) & Hour(Time) & Minute(Time) & Second(Time) & ".txt"
' 一時ファイルの作成とメッセージの本文の書き出し
Set stmFile = objFso.CreateTextFile(strFileName, True)
stmFile.WriteLine ActiveInspector.CurrentItem.Body
stmFile.Close
' 秀丸エディタの起動
objShell.Run "C:Progra~1HidemaruHidemaru.exe " & strFileName, , True
' 編集済みの一時ファイルからの読み出し
Set stmFile = objFso.OpenTextFile(strFileName, 1)
ActiveInspector.CurrentItem.Body = stmFile.ReadAll
stmFile.Close
objFso.DeleteFile strFileName
End Sub
※コメント投稿者のブログIDはブログ作成者のみに通知されます