「やった」仕事を記録するJScript 「やった.js」

  • 多忙な毎日
  • あせって仕事をし
  • 後には仕事をやったという満足感が残らない

そんなヤツ(おれか?おれのことか?)のために当時作ったJScript
日経パソコンオンラインから引用された記念で掲載。

// 何やった?
// 今何やったかを記録するスクリプト。

//基本データ型プロトタイプ拡張
String.prototype.paddingLeft = function(strPad, iKeta) {
	var strZero, i, strTmp;
	for (strZero = new String(''),i = iKeta; i > 0; i--) strZero += strPad;
	strTmp = strZero + this;
	return strTmp.substring(strTmp.length-iKeta , strTmp.length);
}
Date.prototype.getStringDate = function (strSeparator) {
	return this.getFullYear().toString().paddingLeft('0',4) + strSeparator
	     + (this.getMonth()+1).toString().paddingLeft('0',2) + strSeparator
	     + this.getDate().toString().paddingLeft('0',2);
}
Date.prototype.getStringTime = function(strSeparator) {
	return this.getHours().toString().paddingLeft('0',2) + strSeparator
	     + this.getMinutes().toString().paddingLeft('0',2) + strSeparator
	     + this.getSeconds().toString().paddingLeft('0',2);
}

//ujipオブジェクトに雑多なツールをまとめてしまう。
var ujip = {
	getScriptFolder : function() {
		return (new String(WScript.ScriptFullName)).replace(WScript.ScriptName,'');
	},
	filemode : { forReading : 1, forWriting : 2, forAppending : 8}
}

//インプットボックスプロンプトオブジェクト
InputBox = function () {
	this.script = new ActiveXObject('ScriptControl');
	this.script.Language = 'VBScript';
	this.script.AddCode('Function IB(p,t,d)\n IB=InputBox(p,t,d)\n End Function');
}
InputBox.prototype.prompt = function(strMsg, strDefault) {
	return this.script.Run('IB', strMsg, '入力してね', strDefault);
}
InputBox.prototype.discard = function() {
	this.script = null;
}

//ここからメイン。
var yatta = function () {
	var fso = new ActiveXObject('Scripting.FileSystemObject');
	
	//テンポラリ変数の宣言
	var strYatta;
	var dtNow, strDate, strTime;
	var inputbox;
	var strFolder, strFile, strPath;
	var ts;

	dtNow = new Date();
	strDate = dtNow.getStringDate('/');
	strTime = dtNow.getStringTime(':');
	
	inputbox = new InputBox();
	strYatta = inputbox.prompt(strDate + ' ' + strTime + ' に\n何やった?','');
	inputbox.discard();
	
	if (strYatta == '' || strYatta == undefined) return; //何もしないで終了
	
	strFolder = ujip.getScriptFolder();
	strFile = 'やった.csv';
	
	strPath = fso.BuildPath(strFolder, strFile);
	
	if (fso.FileExists(strPath) == true) {
		ts = fso.OpenTextFile(strPath, ujip.filemode.forAppending);
	} else {
		ts = fso.CreateTextFile(strPath, ujip.filemode.forWriting);
	}
	ts.WriteLine(strDate + ',' + strTime + ',' + strYatta);
	ts.Close();
}

yatta();

使い方

  • ここからダウンロード、解凍。

http://www.d2.dion.ne.jp/~ujiie/javascript/yatta/00.jpg

  • 「やった.js」をダブルクリック
  • 入力画面現れるので、ついさっきやり終えたことを入れてやる。

http://www.d2.dion.ne.jp/~ujiie/javascript/yatta/01.jpg

  • すると「やった.csv」が出来上がる。

http://www.d2.dion.ne.jp/~ujiie/javascript/yatta/02.jpg

  • 何かやったら「やった.js」をダブルクリックして入力して行く。
  • 一日の終わりに「やった.csv」を見る。

http://www.d2.dion.ne.jp/~ujiie/javascript/yatta/03.jpg

  • いつごろ何をやったか思い出す。
  • なんとなく御満悦。

ってなことなるわけないでしょ。

ためしに数日やったことがありますが、忙しいときはこんなこと入力している心の余裕なんてないんです。
入力する心の余裕がないことを確認するにはもってこいのツールと言えますね(こらこら)。