ポップアップメニューでファイル選択.jsについて

  1. 前回大変お世話になりまして有難うございました。
    おかげさまで、快適に、有難く使わさせて頂いております。

    質問する場所がここで良いのか分かりませんが、宜しくお願い致します。

    マクロライブラリから、表題の「ポップアップメニューでファイル選択:MyFileSelector.js」を作成し、とても便利そうに思いましたが、実際にファイルを選ぶことが出来ません。

    フォルダとファイルはきれいに表示されて全く問題はないのですが、いざファイルをクリックすると、「Mery」の
    ダイアログボックスが現れ、中身の記述は、左側に黄色の三角標識の中にエクスクラメーションマークがあり、標識のアイコンに続いて、ファイルまでのフルパスが表示され、下段に「OK」となっています。

    で、意味不明のまま「OK」をクリックすると、何も変わらずファイルを選択できません。

    お手数ではございますが、このマクロの使い方を教えて頂けませんでしょうか。

     |  marumaru  |  返信
  2. マクロの作者ではありませんが、ソースを見る限りですと最後にメッセージボックスを表示しているだけで終わっているように思います。ファイルを選択できるからあとはお好きにカスタマイズして使ってくださいね、っていうマクロなのかもしれません。

    選択したファイルを Mery で開くようにするには、マクロの最終行にある、以下の行

    Alert( selected.Path );

    これをコメントアウトか削除して、

    editor.OpenFile(selected.Path, meEncodingNone, meOpenAllowNewWindow);

    こんな感じで追記すれば、選択したファイルを Mery で開くことができました。

     |  Kuro  |  返信
  3. こんばんは。
    MyFileSelector.jsの作者です。

    拙作をお手にしていただきありがとうございます。
    このマクロは、マクロからファイル選択ダイアログを使うことができなかった(使う方法が分からなかった)ので、その代用品として考えたものです。
    つまり、ファイルを選択するところまでの機能を持った部品でしかありません。
    ですから、Kuroさんからご指摘いただいた通リ選択したファイル(のパス)をどのように使うかは、利用者にお任せすることになります。

    例えば、私はWinMergeというファイル比較ソフトを使うために使っています。
    具体的には、MyFileSelector.jsの最下部にある
        Alert( selected.Path );
    を削除(またはコメントアウト)して、
        // winmergepath は各自の環境にあわせて設定してください。
        var winmergepath = "C:\\Program Files (x86)\\WinMerge\\WinMergePortable.exe";
        var cmd = '"' + winmergepath + '" "' + Document.FullName + '" "' + selected.path + '"';
        var WshShell = new ActiveXObject( "WScript.Shell" );
        WshShell.Run( cmd );
    とすれば、編集中のファイルと選択したファイルを引数としてWinMergeを起動することができます。

    なお、当該部分を
        Editor.OpenFile( selected.path );
    とすれば、選択したファイルをオープンできますが、普通にエディタのメニューから選択した方が高機能だと思います。(;^_^A

    それでは。

     |  手石  |  返信
  4. > こんばんは。
    > MyFileSelector.jsの作者です。

    ご丁寧に有難うございます。

    > つまり、ファイルを選択するところまでの機能を持った部品でしかありません。
    > ですから、Kuroさんからご指摘いただいた通リ選択したファイル(のパス)をどのように使うかは、利用者にお任せすることになります。

    jsの記述そのものが何もわからないもので、すみませんでした。
    選んだファイルをクリックすれば開けるものだと思い、階層も自由に移動でき、エクスプローラーよりも便利に思ったものですから継続して使いたいと思っていました。

    > 例えば、私はWinMergeというファイル比較ソフトを使うために使っています。
    > 具体的には、MyFileSelector.jsの最下部にある
    >     Alert( selected.Path );
    > を削除(またはコメントアウト)して、
    >     // winmergepath は各自の環境にあわせて設定してください。
    >     var winmergepath = "C:\\Program Files (x86)\\WinMerge\\WinMergePortable.exe";
    >     var cmd = '"' + winmergepath + '" "' + Document.FullName + '" "' + selected.path + '"';
    >     var WshShell = new ActiveXObject( "WScript.Shell" );
    >     WshShell.Run( cmd );
    > とすれば、編集中のファイルと選択したファイルを引数としてWinMergeを起動することができます。

    > なお、当該部分を
    >     Editor.OpenFile( selected.path );
    > とすれば、選択したファイルをオープンできますが、普通にエディタのメニューから選択した方が高機能だと思います。(;^_^A

    なるほど!私なんかと比べて遥かに高度な使い方が本来の目的だったようです。
    私の場合は比較などめったにないので、コピペして別のソフトに貼り付けていました。
    こんな使い方のためにあったなんて知りませんでしたが、とても参考になりました!
    もう一つ登録して、比較のためのファイルを開くマクロにも使わせて頂きます。

    でも、ファイルを開くだけでも自由度が高く、エクスプローラーで開くよりも使いやすいですよ!

     |  marumaru  |  返信
  5. ● marumaru さん

    いえいえ^^;
    一行追加するだけにしてもマクロ関係はなんだか難しそうだと思われて敬遠されがちなので、興味を持っていただけるだけで嬉しいですね。Mery のウリの一つでもありますので。

    ● 手石 さん

    フォローありがとうございます。
    マクロからファイルを選択ダイアログを使うすべは Mery 側では用意してませんね…

    > 普通にエディタのメニューから選択した方が高機能だと思います。(;^_^A

    確かに^^;
    しかしマクロのポップアップメニューでファイルツリーを再現されているのには驚きました。

     |  Kuro  |  返信
  6. > 例えば、私はWinMergeというファイル比較ソフトを使うために使っています。
    > 具体的には、MyFileSelector.jsの最下部にある
    >     Alert( selected.Path );
    > を削除(またはコメントアウト)して、
    >     // winmergepath は各自の環境にあわせて設定してください。
    >     var winmergepath = "C:\\Program Files (x86)\\WinMerge\\WinMergePortable.exe";
    >     var cmd = '"' + winmergepath + '" "' + Document.FullName + '" "' + selected.path + '"';
    >     var WshShell = new ActiveXObject( "WScript.Shell" );
    >     WshShell.Run( cmd );
    > とすれば、編集中のファイルと選択したファイルを引数としてWinMergeを起動することができます。

    WinMergeはインストールしていましたので早速やってみました。
    素晴らしいですね!
    作成された手石にとっては当たり前の事かもしれませんが驚きました。
    その前にMeryの高機能さに感嘆しています!

    このような素晴らしい物を作成しておられる作者の方々に感謝いたします。

     |  marumaru  |  返信
  7. 手石さん大変失礼いたしました。
    読み返してみると、前回の返信に「さん」を付けずに呼び捨てになっておりました。
    汗顔の至りです。
    本当に申し訳ございませんでした。

     |  marumaru  |  返信
  8. > 選択したファイルを Mery で開くようにするには、マクロの最終行にある、以下の行

    > Alert( selected.Path );

    > これをコメントアウトか削除して、

    > editor.OpenFile(selected.Path, meEncodingNone, meOpenAllowNewWindow);

    > こんな感じで追記すれば、選択したファイルを Mery で開くことができました。

    Kuroさん、いつも速攻での解決策をご提示頂きまして有難うございます。
    全く問題なく開くことが出来ました。

    一行追加するだけで出来る事を質問するとは、何もわからない無知をさらけ出すだけでお恥ずかしい限りです。
    貴重な時間を費やして頂きまして有難うございました。

     |  marumaru  |  返信
スポンサーリンク