ダアイアログボックスから選択されたx-faceヘッダを追加します。さまざまなx-faceを使い分けした場合などに使用します。
※xfaceデータはマクロとは別にTextファイルを用意しておきます。
任意のフォルダにxfaceデータを作成し保存します。X-Face.txtの内容をそのままメールヘッダに貼り付けますので、コメント等は含めないでください。(サンプルはxFace01.txt〜xFace04.txtを使用しています。)
データをFaceMake.exeで作成する場合は、FaceMake用加工(マルチ/カラー用)を使用するとほんの少しは楽になるかもしれません。
かえって面倒だったりして...(^^;;;
「InsertStringEx」でクリップボードへ設定する内容を、1.で作成したxfaceデータ名に変更します。このとき拡張子(.TXT)は含めないでください。たとえば作成したxfaceデータが「xFace01.txt」の場合は「xFace01」となります。修正は作成したxfaceデータ数分行います。(サンプルはxFace01〜xFace04が記述されています。)
「OpenFileMessage」で記述してあるパスをxfaceデータ保存パスに修正します。 このとき「\」は「\\」としてください。(C:\EdMaxの場合はC:\\EdMaxとなります。)
// Start of EdMax Macro // #----------------------* Prolog SaveMailEditHeaderEditMode( ) ; //保存:メール編集+ヘッダ編集 OnHeaderEdit( ) ; //ON:メール編集+ヘッダ編集 SaveCurrentAutoFormSwitch( ) ; //保存:自動整形ON/OFF OffAutoForm( ) ; //OFF:自動整形 SaveCurrentFindCondition( ) ; //保存:検索条件 ActivateMailerPart( ) ; //メーラー部へ切替え SetFocusToView( ) ; //フォーカス:ビュー画面へ //#-------------------------* クリップボード履歴設定(修正部) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , "xFace04" ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , "xFace03" ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , "xFace02" ) ; //挿入:文字列(クリップボードの文頭) ClearClipboard( ) ; //クリップボードをクリア InsertStringEx( 4 , "xFace01" ) ; //挿入:文字列(クリップボードの文頭) // #----------------------* XFaceDataOpen.mac のText名書き換え OpenFileMessage( "C:\\Pemsoft\\Macro\\XFaceDataOpen.mac" , FALSE ) ; //ファイル:開く(パスは環境により異なります) KeyDown( VK_END , 2 ) ; //Ctrl+Endキー FindString( FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , "\\\\" ) ; //文字列の検索(前を検索) KeyDown( VK_RIGHT , 0 ) ; //→キー SetAnchor( ) ; //アンカーの設定(Text名の始点) FindString( TRUE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , ".txt" ) ; //文字列の検索(次を検索) KeyDown( VK_LEFT , 0 ) ; //←キー SetAnchor( ) ; //アンカーの設定(Text名の終点) SelectAnchorArea( ) ; //アンカー間を選択 DeleteString( ) ; //Delete PasteByHistoryDialog( ) ; //履歴から貼り付け //#-------------------------* 「履歴から貼り付け」キャンセルチェック FindString( FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , "\\\\.txt" ) ; //文字列の検索(前を検索) IfStringNotFound( 2 ) ; //「\\.txt」が存在しない場合は【point1】へskip //#----------* キャンセル時の処理 CloseFileNoConfirmation( ) ; //保存確認せずに閉じる(XFaceDataOpen.mac) IfStringFound( 35 ) ; //キャンセルとみなしEpilogへskip //#----------* 【point1】通常処理 SaveMessageToFile( ) ; //上書き保存(XFaceDataOpen.mac) CloseFileNoConfirmation( ) ; //保存確認せずに閉じる //#----------* X-Face関連ヘッダの存在をチェックし削除 //#-------------------------* ヘッダの最終へ位置付け KeyDown( VK_HOME , 2 ) ; //Ctrl+Homeキー FindString( TRUE , FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , "\\n\\n" ) ; //文字列の検索(次を検索) KeyDown( VK_LEFT , 0 ) ; //←キー //#-------------------------* X-Face-Typeの存在チェック FindString( FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "^X-Face-Type: " ) ; //文字列の検索(前を検索) IfStringNotFound( 3 ) ; //存在しない場合は【point2】へskip //#-------------------------* 始点設定(マルチ/カラーの場合) KeyDown( VK_LEFT , 0 ) ; //←キー SetAnchor( ) ; //アンカーの設定 IfStringFound( 5 ) ; //【point3】へskip //#----------* 【point2】 X-Face-Typeが存在しない場合 //#-------------------------* X-Faceの存在チェック FindString( FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "^X-Face: " ) ; //文字列の検索(前を検索) IfStringNotFound( 16 ) ; //存在しない場合は【point4】へskip //#-------------------------* 始点設定(48×48白黒の場合) KeyDown( VK_LEFT , 0 ) ; //←キー SetAnchor( ) ; //アンカーの設定 IfStringNotFound( 13 ) ; //存在しない場合は[xFaceデータの複写]へskip //#----------* 【point3】 X-Face関連ヘッダ削除 //#-------------------------* ヘッダの最終へ位置づけ KeyDown( VK_HOME , 2 ) ; //Ctrl+Homeキー FindString( TRUE , FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , "\\n\\n" ) ; //文字列の検索(次を検索) KeyDown( VK_LEFT , 0 ) ; //←キー //#-------------------------* 終点設定(最終のX-Faceの行末) FindString( FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "^X-Face: " ) ; //文字列の検索(前を検索) KeyDown( VK_RIGHT , 0 ) ; //→キー FindString( TRUE , FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , "\\n" ) ; //文字列の検索(次を検索) KeyDown( VK_RIGHT , 0 ) ; //→キー SetAnchor( ) ; //アンカーの設定 //#-------------------------* X-Face関連ヘッダ削除 SelectAnchorArea( ) ; //アンカー間を選択 DeleteString( ) ; //Deleteキー //#-------------------------* ヘッダの最終へ位置付け KeyDown( VK_HOME , 2 ) ; //Ctrl+Homeキー FindString( TRUE , FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , "\\n\\n" ) ; //文字列の検索(次を検索) KeyDown( VK_LEFT , 0 ) ; //←キー //#----------* 【point4】 X-Faceヘッダの追加 //#-------------------------* xFaceデータの複写 CallMacro( XFaceDataOpen ) ; //ファイル:開く SelectAllString( ) ; //すべてを選択 CopyString( ) ; //コピー CloseFileNoConfirmation( ) ; //保存確認せずに閉じる //#-------------------------* Content-Typeの直前に貼り付け FindString( FALSE , FALSE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "^Content-Type: " ) ; //文字列の検索(前を検索) KeyDown( VK_LEFT , 0 ) ; //←キー PasteString( ) ; //貼り付け //#-------------------------* Epilog RestoreMailEditHeaderEditMode( ) ; //復元:メール編集+ヘッダ編集 RestoreAutoFormSwitch( ) ; //復元:自動整形ON/OFF RestoreCurrentFindCondition( ) ; //復元:検索条件 SetFocusToList( ) ; //フォーカス:リスト画面へ // End of EdMax Macro
// Start of EdMax Macro OpenFileMessage( "C:\\Pemsoft\\Macro\\xFace\\xFace01.txt" , FALSE ) ; //ファイル:開く(パスは環境により異なります) // End of EdMax Macro