=== EdTexマクロ仕様 === Rev.A 2009/02/21 ■ EdTex Ver5.00 以降が対象です。 (一部、旧版(Ver3.11以下)のマクロ仕様とは互換性がありません) 1.規則 1行1命令 「//」がある場合は、それ以降、行末まではコメント CHAR sss[80]等は、最大80文字(文字数)の文字列を意味 文字列は、""で囲んで指定する。""中には、次の文字は、 「\」付きで指定する。 '\' ---> \\ 改行 ---> \r\n '"' ---> \" DWORD, LONGの部分は、数字で指定する(16進数の場合は、0x5a等の形式で)。 BOOLの部分は、TRUE, またはFALSEで指定 ファイルは、Unicode(LE, BOM付き)、または シフトJISで保存します。 2.補足 CallMacro, IfStringFound, IfStringNotFound以外の通常の命令は、 「操作の記録」(操作の記録開始, .., 操作の保存)で記述できます。 従って、マクロを作成する場合、「操作の記録」でマクロの骨組みを作成し、 それをベースにテキストエディタで編集という方法が簡単です。なお、もちろん 「操作の記録」だけで済む場合は、テキストエディタで編集する必要はありません。 なお、テキスト形式で保存できない命令を含む場合、操作記録後の保存時、エラー メッセージボックスが表示されます。 3.標準命令一覧 NewDocument( CHAR fmTitle[80] ) ; // fmTitle=書式名、「NewDocument( "" ) ;」は、「NewDocument( "標準" ) ;」と同じです。 CloseDocument( ) ; SaveDocumentToFile( ) ; CopyString( ) ; PasteString( ) ; CutString( ) ; Undo( ) ; Redo( ) ; ResetAllMarkedLines( ) ; JumpToNextMarkedLine( ) ; JumpToPrevMarkedLine( ) ; ToggleMarkedLine( ) ; ResetAllMarkedWords( ) ; JumpToNextMarkedWord( ) ; JumpToPrevMarkedWord( ) ; ToggleMarkedWord( ) ; ConvSpaceToTab( ) ; ConvTabToSpace( ) ; MoveToCenter( ) ; MoveToRight( ) ; SelectAllString( ) ; AddCopyString( ) ; AddCutString( ) ; 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( ) ; TerminateEdTex( ) ; ClearClipboard( ) ; SaveCurrentAutoFormSwitch( ) ; RestoreAutoFormSwitch( ) ; OnAutoForm( ) ; OffAutoForm( ) ; SaveCurrentFindCondition( ) ; RestoreCurrentFindCondition( ) ; OpenFileDocument( CHAR filePath[256] , BOOL bReadOnly ) ; SaveDocumentToFileAs( CHAR filePath[256] ) ; JumpToTheLine( DWORD lineno ) ; // lineno=0〜,1行目は0 InsertStringEx( DWORD pos , CHAR str[8000] ) ; // pos=0:カーソル位置、1:行頭、2:行末, 3:クリップボードの行頭, 4:クリップボードの文頭、5:クリップボードの文末 ConvFreely( BOOL bToNewDoc , BOOL bReserved , 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] ) ; // bReservedは、常に FALSEを指定します。 // ttype1, ftype1等は、次の値を指定 // 1 fstr1, tstr1 等で、直接、変換文字列を指定 // 11 半角空白 (この場合は、fstr1, tstr1 等は、「""」と記述します。以下同様)。 // 12 半角英記号 // 13 半角数字 // 14 半角大英字 // 15 半角小英字 // 16 半角カナ記号 // 17 半角カタカナ // 21 全角空白 // 22 全角英記号 // 23 全角数字 // 24 全角英字大文字 // 25 全角英字小文字 // 26 全角カナ記号 // 27 全角カタカナ // 28 全角ひらがな // 0 データなし(これ以降のパラメータは、処理されません)。 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 bRegular , BOOL bCase , BOOL bFHWSameTreat , BOOL bWholeWord , CHAR findString[80] ) ; ReplaceString( DWORD action , BOOL bRegular , BOOL bCase , BOOL bFHWSameTreat , BOOL bWholeWord , 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で指定のマクロを呼出します。