//自動で名前を付けて保存する秀丸マクロ //AutoSaveas.mac //(c)hiro http://cinema1987.org/diary/ //ファイルを保存するフォルダ $dir = "C:\\temp"; //保存するファイルの拡張子 $ext = ".txt"; //--------設定終了---------- if(basename == ""){ $bad[0]=">";$bad[1]="<";$bad[2]="\\";$bad[3]="|";//ファイル名禁止文字の配列 $bad[4]="?";$bad[5]="\t";$bad[6]="*";$bad[7]=";"; $bad[8]=":";$bad[9]="\"";$bad[10]=",";$bad[11]="'"; $bad[12]="\t";$bad[13]="\n"; gofiletop; replacedown "\n","",regular; #result1 = result; gofiletop; golineend; replaceup " ","",regular; #result2 = result; selectline; $text = gettext(seltopx,seltopy,selendx,selendy); $text2 = leftstr($text,16); if(#result1 == 1){undo;} if(#result2 == 1){undo;} #text2 = strlen($text2); if((#text2 % 2 != 0) && (#text2 != 1)){ $text2 = leftstr($text2,(#text2-1));} #count = 0; while(#count < 14){ #count = #count +1; if(strstr($text,$bad[#count-1]) != -1){ $basename = year + month + day + "file"; break; }else{call forgivesub;} } call autosavesub; } endmacro; //禁止文字がない場合のサブルーチン forgivesub: if($text == ""){ message "このファイルには何も書かれていません。\n保存できません。"; endmacro; }else{ $basename = $text2; } return; //ファイル保存サブルーチン autosavesub: #filenumber = 0; $filename = $dir + "\\" + $basename + $ext; while(existfile($filename)){ #filenumber = #filenumber + 1; $filenumber = str(#filenumber); $filename = $dir + "\\" + $basename + $filenumber + $ext; } saveas $filename; return;