そっとチラ裏@はてなブログ

はてな女子みたいなステキなブログが書きたいな!オッサンだけどな!

サクラエディタで開いているファイルをGoogleドキュメントに保存するマクロ

 Googleドキュメントへのアップロード処理は、コマンドラインツールのgoogle-docs-uploadを利用。コマンドをJScriptで叩くだけ。

var UserName = "★ユーザーIDを指定★";
var GduPath = "★google-docs-upload.jarのパスを指定★";
var OptionStr = "★'--add-all'等のオプション文字列を指定★";

var oWsh = new ActiveXObject('WScript.Shell');

if(myIsPossibleSend()){
	var PassWord = myInput("パスワードを入力して下さい", "パスワード", "xxxxxx");
	var CmdStr = "cmd /K java -jar " + GduPath + " ";
	CmdStr += FileName + " --username " + UserName + " --password " + PassWord + " ";
	CmdStr += OptionStr;
	oWsh.Run(CmdStr,10,0);
}


function myIsPossibleSend(){
	FileName = Editor.GetFileName();
	if(FileName == ""){
		oWsh.Popup("まだ保存されていないファイルです。送信できません。", 0, '', 0);
		return false;
	}

	if(ExpandParameter("${U?Y$:N$}") == "Y"){
		if(oWsh.Popup("ファイルが変更されています。送信しますか?", 0, '', 1) != 1){
			oWsh.Popup("送信をキャンセルします" + FileName, 0, '', 0);
			return false;
		}
	}
	return true;
}

function myInput(strMsg,strTitle,strDefault){
	//VBScriptのInputBox関数を実行するためScriptControlを利用
	var oSC = new ActiveXObject("ScriptControl");
	oSC.Language = "VBScript";
	var sFunc = 'Function InBox(prompt, title, default)\n';
	sFunc += '    InBox = InputBox(prompt, title, default)\n';
	sFunc += 'End Function\n';
	oSC.AddCode(sFunc);

	var strInput = oSC.Run ("InBox", strMsg,strTitle, strDefault);
	return strInput;
}