はじめに
共有フォルダにあるExcel,Word,Powerpointを見たいけど、他の人の作業の邪魔はしたくないって事がありますよね。
普通に開いた後で読み込み専用にすることはできるのですが、一瞬でも編集権限持ちたくないので、スクリプトを作りました。
読み込み専用で開くスクリプト
受け渡されたファイル(複数OK)の拡張子を判別し、Excel,Word,Powerpointのいずれかであれば、読み取り専用で開きます。
var args = WScript.Arguments; var fso = new ActiveXObject("Scripting.FileSystemObject"); //引数無し=処理しない if(args.length < 1) WScript.Quit(1); //引数分ループ for (var i = 0; i < args.length; i++){ //ファイルが存在しない=次のファイル var path = args.Item(i); if (fso.FileExists(path) == false) continue; //拡張子取得 var ext = fso.GetExtensionName(path); //Excel if (ext.indexOf("xls") != -1){ try{ //Excel起動,ファイルオープン var excel = new ActiveXObject("Excel.Application"); excel.Visible = true; excel.Workbooks.Open(path, 0 , true); }catch(e){ //エラー表示 WScript.Echo("error:" + e.message); } } //Word if (ext.indexOf("doc") != -1){ try{ //Word起動,ファイルオープン var word = new ActiveXObject("Word.Application"); word.Visible = true; word.Documents.Open(path, true, true); }catch(e){ //エラー表示 WScript.Echo("error:" + e.message); } } //PowerPoint if (ext.indexOf("ppt") != -1){ try{ //PowerPoint起動,ファイルオープン var powerpoint = new ActiveXObject("Powerpoint.Application"); powerpoint.Visible = true; powerpoint.Presentations.Open(path, true); }catch(e){ //エラー表示 WScript.Echo("error:" + e.message); } } }
「送る」に追加する
エクスプローラの上のところに「shell:sendto」と入力し、「SendTo」フォルダを開きます。
先ほどのスクリプトをコピペしたファイルを「(任意のファイル名).js」として保存し、プログラムを「Microsoft Windows Based Script Host」にします。
「送る」にスクリプトが追加されます。
任意のExcelファイルなどを右クリックし、「送る」メニューから追加したスクリプトをクリックすると読み取り専用でファイルを開くことができます。
最後に
割と便利で気に入ってます。
何かの役に立てば幸いです。
コメント