var a1; var a2; var a3; var roop = 0; var inp = ExpandParameter("$C"); // InputBoxの初期値 var tex = ""; // 指定文字を格納 var line = ExpandParameter("$y"); // 現在位置の行数を取得 //JScriptからVBSのInputBox関数を実行 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 tex = oSC.Run ( "InBox" , "文字を指定" , "指定した文字を含む行をコピー" , inp ); GoFileTop(); // ファイルの先頭に移動 SearchNext ( tex , 16 ); // 指定文字を検索 if ( GetSelectedString() == tex ) { // 指定文字が見つかったら SelectLine(); // 1行選択 a1 = GetSelectedString(); // 選択範囲を取得 while ( roop == 0 ) { // 検索ループ SearchNext ( tex , 16 ); // 指定文字を検索 if ( GetSelectedString() == tex ) { // 指定文字が見つかったら SelectLine(); // 1行選択 a2 = GetSelectedString(); // 選択範囲を取得 a3 = a1 + a2; // 取得した行を注ぎ足す } else { // 指定文字が見つからなかったら SetClipboard ( 0 , a1 ); // 取得した行をクリップボードヘ break; // ループ終了 } SearchNext ( tex , 16 ); if ( GetSelectedString() == tex ) { SelectLine(); a1 = GetSelectedString(); a2 = a3 + a1; } else { SetClipboard ( 0 , a3 ); break; } SearchNext ( tex , 16 ); if ( GetSelectedString() == tex ) { SelectLine(); a3 = GetSelectedString(); a1 = a2 + a3; } else { SetClipboard ( 0 , a2 ); break; } } // whileループ終了後の動作 Jump ( line , 1 ); // 指定行へジャンプ(初期位置に戻る) SearchClearMark(); // 検索マークのクリア ReDraw(); // 再描画 }