K2さんの雑記
2015-07-30(Thu) [長年日記]■ Outlook2013で、メール作成時にエディタで本文を編集するマクロOutlookは、メール閲覧・作成に関しては、等幅フォントをサポートしているようで、この点は何とか耐えうる。 しかしながら、メール作成時に自動改行的な機能は持っていないので、Becky!に慣れていた私としては、手動で改行を入れていたが、我慢ならなくなった。 で、本文をテンポラリファイルに出力し、外部エディタを起動・編集、外部エディタを終了したら、Outlookの編集画面に編集されたテンポラリファイルを読み込むというマクロを作成した。一応動いているようだ。 '=========================================================== ' その他定義 '=========================================================== Option Explicit Private Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" _ (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long Private Const PROCESS_QUERY_INFORMATION = &H400& Private Const STILL_ACTIVE = &H103& '----------------------------------------------------------- ' ProcessIDのプロセスが終了するまで待つ '----------------------------------------------------------- Private Sub ShellEnd(ProcessID As Long, DoProcessMessages As Boolean) Dim hProcess As Long Dim EndCode As Long Dim EndRet As Long 'ハンドルを取得する hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, ProcessID) '終わるまで待つ Do EndRet = GetExitCodeProcess(hProcess, EndCode) If DoProcessMessages Then DoEvents End If Loop While (EndCode = STILL_ACTIVE) 'ハンドルを閉じる EndRet = CloseHandle(hProcess) End Sub '=========================================================== ' 現在のインスペクターの本文をエディタで編集し、 ' インスペクターで編集文書を読み込む ' 2015/7/30 by K2 '=========================================================== Public Sub InspectorBodyEdit() Dim FileName As String Dim EditorFileName As String Dim S, SBuf As String Dim Ret1 As Long '適当なテンポラリファイル名 FileName = "C:\OutlookMailTemp.txt" '開くエディタ名 EditorFileName = "C:\Tools\K2Editor\K2Editor.exe" Open FileName For Output As #1 Print #1, ActiveInspector.CurrentItem.Body Close #1 'エディタ起動 Ret1 = Shell(EditorFileName & " " & FileName, 1) 'エディタが終了するまで待機 ShellEnd Ret1, True S = "" If Dir(FileName) <> "" Then ' テンポラリファイルを開いてテキストを得る Open FileName For Input As #1 Do Until EOF(1) Line Input #1, SBuf S = S & SBuf & vbCr & vbLf Loop Close #1 'インスペクターに本文を入力 ActiveInspector.CurrentItem.Body = S End If 'インスペクターにフォーカスを当てる ActiveInspector.Activate End Sub 1965|09|
|
//
自己紹介
自己紹介
広告
計るだけダイエット
つっこみリスト
TrackBacks
日記仲間
な/
す/
ひ/
最近の日記
|