ぺーぱーふぇいす

雑記と備忘録。私はプログラマ。

Mery 自作マクロ「カレントフォルダを開く.js」

Meryマクロ。公開3本目。
現在編集しているファイルが設置されているフォルダをエクスプローラで開くマクロ。

説明

実行すると現在編集しているファイルが設置されているフォルダ(カレントディレクトリ)がエクスプローラで開く。
その際、エクスプローラ上では編集していたファイルが選択された状態となる。

マクロの内容としては、Meryから提供されている方法で編集中のファイルのパスとかを取得して、エクスプローラexplorer.exe)にそれらをパスとして与えて起動させている。
エクスプローラ/select,<path>オプションも指定しているので、これで起動時に編集中のファイルを選択状態にしている。

マクロ本体

// -----------------------------------------------------------------------------
// カレントフォルダを開く
// about:  今開いているファイルのカレントフォルダを開く。
// create: 2018/02/07 PaperFace1000
// update: 
// Copyright (c) PaperFace1000. All Rights Reserved.
//  http://paperface.hatenablog.com/
// -----------------------------------------------------------------------------

var fso = new ActiveXObject('Scripting.FileSystemObject');
var sh = new ActiveXObject( "WScript.Shell" );

var name = Document.Name;
var dirPath = Document.Path;

// 一応、システムパスを取得して絶対パスで指定したexplorer.exeを使う
sh.CurrentDirectory = dirPath;
var cmd = fso.BuildPath(fso.GetSpecialFolder(0), "explorer.exe") + 
          " /select,\"" + name + "\"";
          
sh.Exec(cmd);

「ああー今このテキストファイルが入ってるフォルダに用があるんだよ」って時とかに便利。
意外とこれは使い所があるんじゃないかな?

前はこれに該当する機能をマクロじゃなくて、エクスプローラを外部ツールとしてMeryに登録してたんだよね(下のスクショみたいな感じ)。

f:id:PaperFace:20180215090715p:plain

これでもいいんだけど、別のマシンでセットアップしたマシンにMery導入した時に便利かなと思ってマクロに書き直した。