yyyymmdd.txt といった日付形式でファイルを保存するマクロ Ver5.0用
//保存するファイルの拡張子を指定 var ext = ".txt"; //保存先のフォルダを指定 //例:C:\tempに保存する場合 "C:\\temp"で指定 //何も指定しない場合はマイドキュメントに保存されます var ps = ""; //保存する前に確認するか(確認する=1,確認しない=0) var fq = 1; //使用したいフォーマットを指定 var ar=new Array("yyyymmdd","yyyy-mm-dd","yyyy年mm月dd日", "yyyymmddhhMMss","yyyy年mm月dd日hh時MM分ss秒"); //メイン処理 var ws = new ActiveXObject("WScript.Shell"); var fso = new ActiveXObject("Scripting.FileSystemObject"); if(ps=="" || !fso.FolderExists(ps))ps=ws.SpecialFolders("MyDocuments")+"\\"; var menu = CreatePopupMenu(); for(var i=0;i<ar.length;i++) menu.add(parseDate(ar[i]),i+1); menu.add("",0,eeMenuSeparator); menu.add("キャンセル",0); var rtn=menu.Track(0); if(!rtn) Quit(); var fn=parseDate(ar[--rtn])+ext; fn=ps+"\\"+fn.replace(/[\\\/:*?"<>]/g,"_"); if(fq){if(!confirm("以下で保存します。よろしいですか?\n\n「 "+fn+" 」")) Quit();} if (fso.FileExists(fn)){ if(!confirm("同名のファイルが存在します。上書きしますか?\n\n「 "+fn+" 」")) Quit();} document.Save(fn); function parseDate(myFormat){ var mf; var od=new Date(); mf=myFormat.replace(/yyyy/g,od.getFullYear().toString()); mf=mf.replace(/mm/g,frm(od.getMonth()+1)); mf=mf.replace(/dd/g,frm(od.getDate())); mf=mf.replace(/hh/g,frm(od.getHours())); mf=mf.replace(/MM/g,frm(od.getMinutes())); mf=mf.replace(/ss/g,frm(od.getSeconds())); return mf; } function frm(md){ //md>10→md>=10に修正(10が010になるため)
return md>=10?md.toString():"0"+md.toString();
}