システムエンジニアの技術メモ

JScript (Microsoft JScript)

001. JScript から VBScript を実行 + 日付チェック

// JScript から VBScript を実行
var objSC = new ActiveXObject('ScriptControl');
objSC.Language = 'VBScript';

strFnc = 'Function get_date() get_date = Replace(Date, "/", "") End Function';
objSC.AddCode(strFnc);

strFnc = 'Function fnc_input(prompt, title, default) fnc_input = InputBox(prompt, title, default) End Function';
objSC.AddCode(strFnc);

d = objSC.Run('get_date');
d = objSC.Run('fnc_input', 'YYYYMMDD 形式で入力してください。', '日付チェック', d);

WScript.Echo(IsDate(d));

WScript.Quit();

// 日付チェック
function IsDate(str) {

    dtmYYYY = str.substr(0,4);
    dtmMM = str.substr(4,2) - 1;  // JScript は月を 0-11 で表現
    dtmDD = str.substr(6,2);
    var dtmDATE = new Date(dtmYYYY, dtmMM, dtmDD);

    if (isNaN(dtmDATE)) {
        result= false;
    } else if (dtmDATE.getFullYear() == dtmYYYY && dtmDATE.getMonth() == dtmMM && dtmDATE.getDate() == dtmDD) {
        result= true;
    } else {
        result= false;
    }

    if (dtmMM < 9) {dtmMM = '0' + (dtmMM + 1)} else {dtmMM = dtmMM + 1};
    a = '入力値 : ' + dtmYYYY + '/' + dtmMM + '/' + dtmDD;
    a += '\n日付チェック : ' + result;

    return a;

}