=== EdTexマクロ仕様 ===
=== EdLeafマクロ仕様 ===
=== EdTexマクロ仕様 ===
Rev.C 2003/02/26
■ EdTex Ver3.03 以降が対象です。
1.規則
1行1命令
「//」がある場合は、それ以降、行末まではコメント
CHAR sss[80]等は、最大80文字(バイト)の文字列を意味
文字列は、""で囲んで指定する。""中には、次の文字は、
「\」付きで指定する。
'\' ---> \\
改行 ---> \r\n
'"' ---> \"
DWORD, LONGの部分は、数字で指定する(16進数の場合は、0x5a等の形式で)。
BOOLの部分は、TRUE, またはFALSEで指定
2.補足
CallMacro, IfStringFound, IfStringNotFound以外の通常の命令は、
「操作の記録」(操作の記録開始, .., 操作の保存)で記述できます。
従って、マクロを作成する場合、「操作の記録」でマクロの骨組みを作成し、
それをベースにテキストエディタで編集という方法が簡単です。なお、もちろん
「操作の記録」だけで済む場合は、テキストエディタで編集する必要はありません。
なお、テキスト形式で保存できない命令を含む場合、操作記録後の保存時、エラー
メッセージボックスが表示されます。
3.標準命令一覧
NewDocument( CHAR fmTitle[80] ) ; // fmTitle=書式名、「NewDocument( "" ) ;」は、書式を選択して開くことを意味する。
CloseDocument( ) ;
SaveDocumentToFile( ) ;
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( ) ;
TerminateEdTex( ) ;
ClearClipboard( ) ;
SaveCurrentAutoFormSwitch( ) ;
RestoreAutoFormSwitch( ) ;
OnAutoForm( ) ;
OffAutoForm( ) ;
SaveCurrentFindCondition( ) ;
RestoreCurrentFindCondition( ) ;
OpenFileDocument( CHAR filePath[256] , BOOL bReadOnly ) ;
SaveDocumentToFileAs( 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 データなし(これ以降のパラメータは、処理されません)。
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] ) ;
OpenSetToClipboardDialog( CHAR title[80] ) ; // title=ダイアログのタイトル
RunExternalTool( CHAR path[250] , CHAR parameter[250] , CHAR directory[250] , LONG ReceiveType_bIcon , LONG SendType_bDosCommand , BOOL DataType_bRedirect ) ;
# ReceiveType_bIcon等は、上位ワードがReceiveType、下位ワードがbIcon の意味。
4.拡張命令一覧
拡張命令は、操作記録では作成できません。テキストエディタで、直接追加します。
IfStringFound( LONG count ) ; // 以前の文字列検索でヒットした場合、この後の命令count個の実行をスキップ。なお、負値の場合には、その個数分前の命令に戻ります。
IfStringNotFound( LONG count ) ; // 以前の文字列検索でヒットしなかった場合、この後の命令count個の実行をスキップ。なお、負値の場合には、その個数分前の命令に戻ります。
CallMacro( CHAR macroName[80] ) ; // macroNameで指定のマクロを呼出します。
=== EdLeafマクロ仕様 ===
Rev.A 2002/09/25
■ EdLeaf Ver1.00 以降が対象です。
■ 下記の点以外は、EdTexと同様です。
- RunExternalTool( CHAR path[250] , CHAR parameter[250] , CHAR directory[250] , LONG SendType , LONG DataType , LONG ReceiveType ) ;
SendType=0:何もしない、1:クリップボード経由、2:ワークファイル経由
DataType=0:なし、1:選択中の文字列、2:選択中、またはすべての文字列、3:すべての文字列
ReceiveType=0:何もしない、1:クリップボードから自動で受ける、2:ワークファイルから自動で受ける、3:クリップボードから確認して受ける、4:ワークファイルから確認して受ける