「上半期実績と見通し20121024.xlsx」
みたいなやつ。バージョン管理システムがあればそれでもいいのだけれど、両方開いたりすることを考えるとやっぱり別ファイル名がいい。特にエクセルは、ディレクトリが別でも同じファイル名は開くことができないので、ファイル名は別にしておく必要がある。
そしてこのYYYYMMDDのファイル名を作る方法あれこれ。
1.ATOKを使う
ATOKは賢くて、「きょう」を変換すると「2012/10/24(水)」みたいな候補も出してくれる。そして日付の書式のオプションで、YYYYMMDDの形式も選ぶことができる。ちなみに、あした提出の書類なら「あした」で検索しても、あしたの日付で変換してくれる。「げつよう」とか「かよう」でも、変換してくれるのが兆賢い。
ただし、ATOKは有料。これだけのために全社でATOKを買おうというのは、説得力が薄い。
2.そういうJSを書く
JSでWSHを書いて、そのJSを、「送る」フォルダに入れる。
スクリプトはこれ。
if(WScript.Arguments.length == 0){これを、yyyymmdd.js みたいな名前で保存して、送るフォルダに保存すればいい。
WScript.Echo("ファイルをドロップしてください");
WScript.Quit();
}
var source = WScript.Arguments(0);
if(!source.match(/(.*\\)(.+?)\.(.*?)$/)){
WScript.Echo("ファイルをドロップしてください");
WScript.Quit();
}
var dir = RegExp.$1;
var basename = RegExp.$2;
var ext = RegExp.$3;
//今日の日付を作成
var d = new Date();
var strDate = d.getFullYear();
strDate += ("0" + (d.getMonth() + 1)).slice(-2) ;
strDate += ("0" + d.getDate()).slice(-2) ;
//WScript.Echo(strDate);
//もしbasenameに数字8桁があれば、そこを置換
if(basename.match(/\d{8}/)){
//WScript.Echo(basename);
basename = basename.replace(/\d{8}/,strDate);
}else{
basename += strDate;
}
//WScript.Echo(basename);
var newname = dir + basename + "." + ext;
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.GetFile(source).Copy(newname);
WScript.Echo(newname);
送るフォルダを一発で開くには、ファイル名を指定して実行で「shell:sendto」を入れればいい。
これで、ちょっと大人になった気分。
「Book1.xlsx」でファイルを送ってくる人よりも「収益シミュレーション20121024.xlsx」でファイルを作る人の方が信頼される。
0 件のコメント:
コメントを投稿