マクロ 公開データ (2000.10~2008.01)
[1027] 件名にする(エディタ・メーラー部兼用) - kotaro <kotato@mx4.tiki.ne.jp> 01/02/07 23:33
Subject: [1027] 件名にする(エディタ・メーラー部兼用)
Date: Wed, 07 Feb 2001 23:33:38 +0900
From: kotaro <kotato_@_mx4.tiki.ne.jp>
浩太郎です。
//****************** 件名にする(エディタ・メーラー部兼用)
[機能]
EdMax の拡張コマンド「件名にする」をメーラー部でも使えるよ
うにしたものです。
エディタ部での動作は、「件名にする」するとほぼ同じです。
メーラー部では基本的に件名を上書きする仕様にしていますが、
"【】" "[] "[]" で囲まれた部分は残します。
ノーマルの「件名にする」と比べると、「カーソル位置が文
頭に動く」というデメリットがあるため、エディタ部でのみ
使用の人は使わない方がいいです。
[メーラー部での動作]
メーラー部での動作は、ちょっと変則的です。
基本的には上書きしますが、 件名の中に
[・・・][・・・]【・・・】のパターンがあると。例えば、、
[edmax:1063] EdMax Ver2.81.1 暫定版リリース
↓
[edmax:1063]□□□□□□□□□□□□□□□□□□
・・・といった風に[・・・]を残して上書きします。
ちなみに[・・・]のパターンが2つある場合は、最後尾に上書きです。
[edmax:1063] EdMax Ver2.81.1【重要】暫定版リリース
↓
[edmax:1063] EdMax Ver2.81.1【重要】□□□□□□□□
……という風に上書きします。
#[・・・】にもマッチします(^^;
他、複数行サブジェクト。=途中に改行の混じった Subject は、
2行目以降の括弧のパターンにはマッチしません。
//=============================
// Start of EdMax Macro
SetFocusToEditor( ) ;//フォーカス・メッセージ作成画面へ
//##条件の保存
SaveCurrentFindCondition( ) ;//保存:文字列の検索オプション
SaveCurrentAutoFormSwitch( ) ;//保存 自動整形ON/OFF
SaveMailEditHeaderEditMode( ) ;//保存:メール編集・ヘッダ書き換え
OffAutoForm( ) ;//自動整形OFF
CopyString( ) ;//選択範囲をコピー
//##メーラー部かエディタ部か?
SetFocusToView( ) ;//フォーカスをビューへ
OffMailEditMode( ) ;//メール編集OFF
KeyDown( VK_HOME , 2 ) ;//カーソル・テキスト先頭へ
InsertStringEx( 0 , "." ) ;//文字列挿入・カーソル位置に
FindString( FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "." ) ;
IfStringNotFound( 5 ) ;//メーラー部である→
//##エディタ部の場合
DeleteString( ) ;//選択中の文字列を削除
PasteSelected( ) ;//選択状態で貼り付け
SetToSubject( ) ;//件名にする
DeleteString( ) ;//選択中の文字列を削除
IfStringFound( 1000 ) ;
//##メーラー部の場合
OnHeaderEdit( ) ;
//[○○]【○○】[○○]のパターンを探す([ 】にもヒットしますが、問題ないでしょう^^?)
FindString( TRUE , FALSE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , "\\n\\n" ) ;
FindString( FALSE , TRUE , FALSE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , "^Subject: .*[\\[【].+[\\]】]" ) ;
IfStringFound( 4 ) ; // 括弧のパターンが存在
//##括弧がない。
FindString( FALSE , TRUE , TRUE , TRUE , TRUE , TRUE , FALSE , FALSE , FALSE , "^Subject: " ) ;
IfStringNotFound( 10 ) ; // サブジェクトもない。
KeyDown( VK_RIGHT , 0 ) ;
IfStringFound( 2 ) ; //
KeyDown( VK_RIGHT , 0 ) ;
InsertString( " " ) ;
SetAnchor( ) ;//アンカーの設定
FindString( TRUE , FALSE , FALSE , TRUE , TRUE , FALSE , FALSE , FALSE , FALSE , "\\n[^\\t]" ) ;
KeyDown( VK_LEFT , 0 ) ;
SetAnchor( ) ;//アンカーの設定
SelectAnchorArea( ) ;//アンカー間の選択
PasteString( ) ;//貼り付け
RestoreMailEditHeaderEditMode( ) ;//復元:メール編集・ヘッダ書き換えモード
RestoreCurrentFindCondition( ) ;//復元:文字列の検索オプション
RestoreAutoFormSwitch( ) ;//復元 自動整形ON/OFF
// End of EdMax Macro
//=============================