HowTo系のメールマガジンなど、必用な部分だけをメモとしてTextにまとめておくような場合に使用します。
Textファイルの名称は自由ですが、拡張子は「.txt」としてください。(本例では「memo1.txt」「memo2.txt」「memo3.txt」としています。)またText数はいくつでもかまいませんが、9個以上なると選択時にスクロールが必要となります。
Textファイル名は、拡張子(.txt)を含んで記述します。
たとえばメモ用のTextファイルが Edcom.txt の場合は
InsertStringEx( 4 , "memo1.txt" ) ; → InsertStringEx( 4 , "Edcom.txt" ) ; とします。
本例は9個のText用ですがそれ以上の場合は、ClearClipboardとInsertStringExはペアとなるように追加してください。
メモを保存するフォルダを、仮に D:\Data\Memo とすると
InsertStringEx( 4 , "OpenFileMessage( \"( "D:\\\\Data\\\\Memo\\\\" ) ;
のようになります。(通常「\」は「\\」となりますが、この場合再度マクロとして実行するので\\\\となる点に注意してください。)
Textの増加に応じ「IfStringNotFound( 38 ) ;」の数字を修正します。1Textの追加 は 2命令の増となるので 38 + 追加Text数 × 2 とします。
// Start of EdMax Macro
CHAR MacroComment[] = "対象Textを選択しメモ追加保存\r\nupdate 2001/10/29"
// #----------------------* Prolog
SaveCurrentFindCondition( ) ; //保存:検索条件
SaveCurrentAutoFormSwitch( ) ; //保存:自動整形ON/OFF
OffAutoForm( ) ; //OFF:自動整形
SetFocusToEditor( ) ; //フォーカス・メッセージ作成画面へ
// #----------------------* Memo対象を加工し新規メッセージに保管
ClearClipboard( ) ; //クリップボードをクリア
CopyString( ) ; //コピー
InsertStringEx( 4 , "\r\n\r\n# ---------------------------------------------------------- *\r\n# Subject: %s\r\n# Wrote: %f\r\n# Date: %Y/%v/%q %U:%V:%X (%z)\r\n# Message-Id: %m\r\n# ---------------------------------------------------------- *\r\n" ) ; //挿入:文字列(クリップボードの文頭)
NewMessageSx( ) ; //新規メッセージ(メーラー部)
SelectAllString( ) ; //すべてを選択
DeleteString( ) ; //Delete(選択されていなかった場合に備えdelete)
PasteString( ) ; //貼り付け
// #----------------------* 選択されていたかチェック
FindString( FALSE , FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , "----- *\\n" ) ;
KeyDown( VK_RIGHT , 0 ) ; //→キー
FindString( TRUE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "." ) ; //文字列の検索(次を検索)
IfStringNotFound( 38 ) ; //条件選択されていない場合はEpilogへskip
// #----------------------* クリップボード履歴設定(修正部)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , " " ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , "Memo3.txt" ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , "Memo2.txt" ) ; //挿入:文字列(クリップボードの文頭)
ClearClipboard( ) ; //クリップボードをクリア
InsertStringEx( 4 , "Memo1.txt" ) ; //挿入:文字列(クリップボードの文頭)
KeyDown( VK_HOME , 2 ) ; //Ctrl+Homeキー
InsertString( "\r\n" ) ; //キーボード入力(改行)
KeyDown( VK_UP , 0 ) ; //↑キー
PasteByHistoryDialog( ) ; //履歴から貼り付け
FindString( FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , ".txt" ) ; //文字列の検索(前を検索)
IfStringNotFound( 14 ) ; //「履歴から貼り付け」キャンセル時はEpilogへskip
// #----------------------* Textをopenするマクロを作成
KeyDown( VK_HOME , 0 ) ; //Homeキー
KeyDown( VK_END , 1 ) ; //Shift+Endキー
CutString( ) ; //切り取り(Text名)
DeleteString( ) ; //Deleteキー(改行)
InsertStringEx( 4 , "OpenFileMessage( \"D:\\\\EdMax\\\\MemoText\\\\" ) ; //挿入:文字列(クリップボードの先頭) 注1
InsertStringEx( 5 , "\" , FALSE ) ;" ) ; //挿入:文字列(クリップボードの最終)
CallMacro( SubTmpMacCmd1Mk ) ; //Openマクロ(TmpMacCmd1.mac)の作成
SelectAllString( ) ; //すべてを選択
CopyString( ) ; //コピー(Memo対象のcopy)
CallMacro( TmpMacCmd1.mac ) ; //Openマクロの実行
// #----------------------* MemoTextの文末に貼り付け
KeyDown( VK_END , 2 ) ; //Ctrl+Endキー
PasteString( ) ; //貼り付け
SaveMessageToFile( ) ; //上書き保存
CloseMessage( ) ; //閉じる
// #----------------------* Epilog
CloseFileNoConfirmation( ) ; //保存確認せずに閉じる
RestoreCurrentFindCondition( ) ; //復元:検索条件
RestoreAutoFormSwitch( ) ; //復元:自動整形ON/OFF
// End of EdMax Macro