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();
}
