=== EdMaxマクロ仕様 === 
									Rev.B 2000/11/15
■ EdMaxシェアウェア版Ver2.77 以降、フリー版Ver2.84.1F 以降が対象です。

■ EdMaxコマンド一覧(Menu:マクロコマンド対応版)もご参照ください(matsuiさん作成)。

1.規則
 1行1命令

 「//」がある場合は、それ以降、行末まではコメント

 CHAR sss[80]等は、最大80文字(バイト)の文字列を意味

 文字列は、""で囲んで指定する。""中には、次の文字は、
  「\」付きで指定する。
	'\'  ---> \\
	改行 ---> \r\n
	'"'  ---> \"
 DWORD, LONGの部分は、数字で指定する(16進数の場合は、0x5a等の形式で)。

 BOOLの部分は、TRUE, またはFALSEで指定

2.補足
 CallMacro, IfStringFound, IfStringNotFound以外の命令は、
 すべて「操作の記録」(操作の記録開始, .., 操作の保存)で記述できます。

 従って、マクロを作成する場合、「操作の記録」でマクロの骨組みを作成し、
 それをベースにテキストエディタで編集という方法が簡単です。なお、もちろん
 「操作の記録」だけで済む場合は、テキストエディタで編集する必要はありません。

3.標準命令一覧

メーラー部、エディタ部のメニューコマンド、拡張コマンドに対応する
マクロ命令一覧です。

NewMessage( ) ;
CloseMessage( ) ;
SaveMessageToFile( ) ;
CopyString( ) ;
PasteString( ) ;
CutString( ) ;
Undo( ) ;
Redo( ) ;
ResetAllMarkedLines( ) ;
JumpToNextMarkedLine( ) ;
JumpToPrevMarkedLine( ) ;
ToggleMarkedLine( ) ;
ResetAllMarkedWords( ) ;
JumpToNextMarkedWord( ) ;
JumpToPrevMarkedWord( ) ;
ToggleMarkedWord( ) ;
ConvSpaceToTab( ) ;
ConvTabToSpace( ) ;
MoveToCenter( ) ;
MoveToRight( ) ;
SelectAllString( ) ;
AddCopyString( ) ;
AddCutString( ) ;
PrintPreview( ) ;
Print( ) ;
ToggleWriteProtect( ) ;
JumpToCurrentTag( ) ;
JumpToNextTag( ) ;
JumpToPrevTag( ) ;
ActivateTagWindow( ) ;
ConvInvertCase( ) ;
ConvUpperCase( ) ;
ConvLowerCase( ) ;
ConvCapitalize( ) ;
ConvHanToZen( ) ;
ConvZenToHan( ) ;
ConvHiraToZenKata( ) ;
ConvZenKataToHira( ) ;
ConvSplitLines( ) ;
ConvJoinLines( ) ;
InsertDate( ) ;
InsertTime( ) ;
Indent( ) ;
UnIndent( ) ;
MoveToLeft( ) ;
JumpToCorrespondingBracket( ) ;
CloseAllFiles( ) ;
SaveAllFiles( ) ;
DispFileListWnd( ) ;
PasteSelected( ) ;
PasteCurrentHistory( ) ;
PasteNextHistory( ) ;
PastePrevHistory( ) ;
FormSelection( ) ;
SetAnchor( ) ;
SelectAnchorArea( ) ;
ToggleAutoForm( ) ;
ToggleFormIndent( ) ;
TogglePadHanSpace( ) ;
PasteByHistoryDialog( ) ;
CloseFileNoConfirmation( ) ;
ToggleMailEditMode( ) ;
ToggleEnableHeaderEdit( ) ;
SetWindowVerticalFixedPos( ) ;
SetWindowHorizontalFixedPos( ) ;
TerminateEdMax( ) ;
ClearClipboard( ) ;
ReceiveMessage( ) ;
ReceiveMessageSelection( ) ;
ReceiveMessageRound( ) ;
Disconnect( ) ;
OnTimerReceiving( ) ;
OffTimerReceiving( ) ;
OnDialupConnect( ) ;
OffDialupConnect( ) ;
SendWaitingMessage( ) ;
JumpToNextUnreadMessage( ) ;
JumpToPrevUnreadMessage( ) ;
JumpToNextMessage( ) ;
JumpToPrevMessage( ) ;
JumpToTopMessage( ) ;
JumpToEndMessage( ) ;
ForwardToNextMessage( ) ;
BackToPrevMessage( ) ;
JumpToNextMessageOfMessageId( ) ;
JumpToPrevMessageOfMessageId( ) ;
JumpToNextMessageOfReferences( ) ;
JumpToPrevMessageOfReferences( ) ;
EnableAutoDisconnectSwitch( ) ;
DisableAutoDisconnectSwitch( ) ;
SendMessageRound( ) ;
ResetColorMark( ) ;
ReplyMessage( ) ;
ReplyMessageToAll( ) ;
ForwardMessage( ) ;
ReEditMessage( ) ;
ActivateMailerPart( ) ;
SaveToDraft( ) ;
SelectAllUnreadMessage( ) ;
SelectAllReadMessage( ) ;
SelectAllMessage( ) ;
DoRead( ) ;
DoUnread( ) ;
DeleteSelectedMessage( ) ;
CompactCurrentFolder( ) ;
SendMessageLater( ) ;
SendMessageNow( ) ;
SendLaterMessageAll( ) ;
ForwardMessageAsis( ) ;
ForwardMessageAsAttachment( ) ;
OpenEditViewCombined( ) ;
CopyToMemoFolder( ) ;
ForwardAndSendLater( ) ;
SelectUnreadMessageOne( ) ;
SetToSubject( ) ;
NewMessageSx( ) ;
SaveToMemoFolder( ) ;
ToggleExtMenuBar( ) ;
OnInvokeEditorAutomatically( ) ;
OffInvokeEditorAutomatically( ) ;
StartSound( ) ;
StopSound( ) ;
ReadUnreadNext( ) ;
ReadUnreadPrev( ) ;
OnInvokeHtmlEditorAutomatically( ) ;
OffInvokeHtmlEditorAutomatically( ) ;
InvokeEditor( ) ;
InvokeHtmlEditor( ) ;
ToggleHtmlSending( ) ;
OnHtmlSending( ) ;
OffHtmlSending( ) ;
ReadNextNewMessage( ) ;
ReadPrevNewMessage( ) ;
JumpToTopNewMessage( ) ;
JumpToEndNewMessage( ) ;
JumpToNextNewMessage( ) ;
JumpToPrevNewMessage( ) ;
OpenByExternalViewer( ) ;
MinimizeEdMax( ) ;
SendAndReceiveMessage( ) ;
SendAndReceiveRound( ) ;
SendRoundAndReceiveRound( ) ;
OpenByEditView( ) ;
ToggleStartSelectString( ) ;
EndSelectString( ) ;
SetFocusToView( ) ;
SetFocusToList( ) ;
SetFocusToFolder( ) ;
SetFocusToEditor( ) ;
SetFocusToTemplate( ) ;
SetFocusToToAddress( ) ;
SetFocusToSubject( ) ;
OpenMailMagazineManeger( ) ;
SaveCurrentAutoFormSwitch( ) ;
RestoreAutoFormSwitch( ) ;
OnAutoForm( ) ;
OffAutoForm( ) ;
SaveCurrentFindCondition( ) ;
RestoreCurrentFindCondition( ) ;
SaveCurrentQueryCondition( ) ;
RestoreCurrentQueryCondition( ) ;
OnMailEditMode( ) ;
OffMailEditMode( ) ;
OnHeaderEdit( ) ;
OffHeaderEdit( ) ;
SaveMailEditHeaderEditMode( ) ;
RestoreMailEditHeaderEditMode( ) ;
CancelMessage( ) ;
SelectThisThread( ) ;
IgnoreUnreadInThisThread( ) ;
OpenThisThread( ) ;
CloseThisThread( ) ;
JumpToTopOfThisThread( ) ;
JumpToEndOfThisThread( ) ;
IgnoreThisThread( ) ;
WatchThisThread( ) ;
OpenAllThread( ) ;
CloseAllThread( ) ;
ClearSubject( ) ;
CopySubject( ) ;
OnThreadEditMode( ) ;
OffThreadEditMode( ) ;
DetachThread( ) ;
SaveThreadEditMode( ) ;
RestoreThreadEditMode( ) ;

SetViewFont( LONG lfHeight, LONG lfWidth , LONG lfEscapement , LONG lfOrientation , LONG lfWeight , BYTE lfItalic , BYTE lfUnderline , BYTE lfStrikeOut , BYTE lfCharSet , BYTE lfOutPrecision , BYTE lfClipPrecision , BYTE lfQuality , BYTE lfPitchAndFamily , CHAR lfFaceName[32] ) ;	

OpenFileMessage( CHAR filePath[256] , BOOL bReadOnly ) ;	

SaveMessageToFileAs( CHAR filePath[256] ) ;

SetPrintPageLayout( DWORD leftMargin , DWORD topMargin , DWORD rightMargin , DWORD bottomMargin , DWORD initialPageNum , DWORD initialLineNum , BOOL bPrintLineNum , DWORD columnSpacesIndex , DWORD lineSpacesIndex , BOOL bNoPrintHeader , DWORD headerPos , CHAR header[80] , BOOL bNoPrintFooter , DWORD footerPos , CHAR footer[80] , LONG lfHeight(=Point値!!!), LONG lfWidth , LONG lfEscapement , LONG lfOrientation , LONG lfWeight , BYTE lfItalic , BYTE lfUnderline , BYTE lfStrikeOut , BYTE lfCharSet , BYTE lfOutPrecision , BYTE lfClipPrecision , BYTE lfQuality , BYTE lfPitchAndFamily , CHAR lfFaceName[32] ) ;

JumpToTheLine( DWORD lineno ) ;		// lineno=0〜,1行目は0

InsertStringEx( DWORD pos , CHAR str[8000] ) ;	

// pos=0:カーソル位置、1:行頭、2:行末, 3:クリップボードの行頭, 4:クリップボードの文頭、5:クリップボードの文末

ConvFreely( BOOL bToNewDoc , BOOL bEscapesequence , DWORD ftype1 , CHAR fstr1[80] , DWORD ttype1 , CHAR tstr1[80] , DWORD ftype2 , CHAR fstr2[80] , DWORD ttype2 , CHAR tstr2[80] , DWORD ftype3 , CHAR fstr3[80] , DWORD ttype3 , CHAR tstr3[80] , DWORD ftype4 , CHAR fstr4[80] , DWORD ttype4 , CHAR tstr4[80] , DWORD ftype5 , CHAR fstr5[80] , DWORD ttype5 , CHAR tstr5[80] , DWORD ftype6 , CHAR fstr6[80] , DWORD ttype6 , CHAR tstr6[80] , DWORD ftype7 , CHAR fstr7[80] , DWORD ttype7 , CHAR tstr7[80] , DWORD ftype8 , CHAR fstr8[80] , DWORD ttype8 , CHAR tstr8[80] , DWORD ftype9 , CHAR fstr9[80] , DWORD ttype9 , CHAR tstr9[80] , DWORD ftype10 , CHAR fstr10[80] , DWORD ttype10 , CHAR tstr10[80] ) ;

// ttype1, ftype1等は、次の値を指定
// 1  fstr1, tstr1 等で、直接、変換文字列を指定
// 11 半角空白 (この場合は、fstr1, tstr1 等は、「""」と記述します。以下同様)。
// 12 半角英記号
// 13 半角数字
// 14 半角大英字
// 15 半角小英字
// 16 半角カナ記号
// 17 半角カタカナ
// 21 全角空白
// 22 全角英記号
// 23 全角数字
// 24 全角英字大文字
// 25 全角英字小文字
// 26 全角カナ記号
// 27 全角カタカナ
// 28 全角ひらがな
// 0  データなし(これ以降のパラメータは、処理されません)。

JumpToNextMarkedMessage( DWORD markNum ) ;	// markNum=1〜8, 100はすべて

JumpToPrevMarkedMessage( DWORD markNum ) ;	// markNum=1〜8, 100はすべて

ChangeAccount( DWORD accountNum ) ;			// accountNum=1〜50

DialupConnect( DWORD accountNum ) ;			// accountNum=1〜50

SetColorMark( DWORD markNum ) ;  			// markNum=1〜8 

NewMessageByThis( CHAR hctxpath[200] ) ;	

ReplyMessageByThis( CHAR hctxpath[200] ) ;	

OpenAccount( DWORD accountNum ) ;	  	 	// accountNum=1〜50

CloseAccount( DWORD accountNum ) ;  		// accountNum=1〜50

OpenThisFolder( CHAR hctxpath[200] ) ;

LayoutByThis( BOOL bVert , BOOL bViewCenter , DWORD folderWidth , DWORD pane1HeightOrWidth , DWORD pane2HeightOrWidth ) ;

ReplyMessageToAllByThis( CHAR hctxpath[200] ) ;	

ReceiveMessageFromThisAccount( DWORD accountNum ) ;	// accountNum=1〜50 

SendWaitingMessageOfThisAccount( DWORD accountNum ) ;	// accountNum=1〜50 	

DoQuery( BOOL bCase , BOOL bDBCase , BOOL bRegular , BOOL bEscapeSequence , BOOL bAndOr , BOOL bWholeWord , BOOL bSavePos , DWORD findArea , DWORD findPlace , CHAR findString[80] , CHAR startDate[11] , CHAR endDate[11] , BOOL bStartDate , BOOL bEndDate , BOOL bUnread , BOOL bRead , BOOL bMark , DWORD markNum ) ;		// markNum=1〜8、100はすべて

DoDist( BOOL bMove , BOOL bMark , BOOL bSound , DWORD target , DWORD condition ) ;

KeyDown( DWORD vkey , DWORD flag ) ;	

// vKey には、次のシンボルをそのまま使用します。
//		VK_HOME
//		VK_END
//		VK_PRIOR
//		VK_NEXT
//		VK_RIGHT
//		VK_LEFT
//		VK_DOWN
//		VK_UP
//		VK_INSERT
//		VK_ESCAPE
//
// flag 
//		Shift 		--- 1
//		Ctrl  		--- 2
//		Ctrl+Shift  --- 3

InsertString( CHAR string[1000] ) ;

DeleteString( ) ;

FindString( BOOL bNext , BOOL bCase , BOOL bDBCase , BOOL bRegular , BOOL bEscapeSequence , BOOL bAndOr , BOOL bWholeWord , BOOL bRound , BOOL bFindInFolder , CHAR findString[80] ) ;

ReplaceString( DWORD action , BOOL bCase , BOOL bDBCase , BOOL bRegular , BOOL bEscapeSequence , BOOL bAndOr , BOOL bWholeWord , BOOL bRound , CHAR findString[80] , CHAR replaceString[80] ) ;

// action=0:次を検索、1:置換して次に、2:すべて置換

FindNextPrev( BOOL bNext , CHAR findString[80] ) ;

4.拡張命令一覧

拡張命令は、操作記録では作成できません。テキストエディタで、直接追加します。

IfStringFound( LONG count ) ;	// 以前の文字列検索でヒットした場合、この後の命令count個の実行をスキップ。なお、負値の場合には、その個数分前の命令に戻ります。

IfStringNotFound( LONG count ) ;	// 以前の文字列検索でヒットしなかった場合、この後の命令count個の実行をスキップ。なお、負値の場合には、その個数分前の命令に戻ります。

CallMacro( CHAR macroName[80] ) ;	// macroNameで指定のマクロを呼出します。