=== 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で指定のマクロを呼出します。