マクロ「よく使うフォルダ」

  1. Kuroさん、皆様、いつもお世話になっておりますm(_ _)m。

    もし「よく使うフォルダ」マクロの作者様がこの投稿をご覧になっていたら、以下のことについてご回答いただけますとありがたいです。

    (1)メニューが文字化けすること
    このマクロは全角文字を想定していないものでしょうか?
    と申しますのも、よく使うフォルダを登録するファイル(quickaccess.txt)で、>> の後に

    Windowsフォルダ
    temporaryフォルダ

    という名称を書いたところ、以下のように文字化けしてしまいました。
    https://gyazo.com/bf147688c32d87085fb5c30040aee572

    (2)日本語を含むフォルダが開けないこと
    もう1つは日本語を含むフォルダが開けないことです。
    quickaccess.txtに以下の2行を記述したところ

    C:\Users\Himitsu\Documents\900_temporary_space\>>temporary_space
    C:\Users\Himitsu\Documents\80_アプリ置き場\Mery\>>Mery

    1行目は無事にフォルダを開けたのですが、2行目に関してはフォルダを開くことができませんでした。素人目には、2行目ではフォルダ名に日本語が入っているからかなあ、と思っています。

    以上2点につきまして(特に2点目につきまして)、何か良い解決方法がございましたら教えていただけると幸いです。よろしくお願いいたします。

     |  くま  |  返信
  2. 「よく使うフォルダ」マクロの作者ではありませんが、おそらく原因は「文字コード」だと思われます。

    quickaccess.txt を UTF-8 で保存していませんか?
    このマクロでファイルの読み込みを担当している「FileSystemObject」は UTF-16 か シフトJIS しか扱えなかったはずです。
    画像の文字化けは UTF-8 を シフトJIS として読み込んだ結果発生しています。

    quickaccess.txt を Mery で開き、[名前を付けて保存]→エンコードを UTF-16 (BOM付き) にして保存してからマクロを試してみてください(BOM付きであれば LE/BE どちらでも大丈夫だと思います、多分)。

     |  masme  |  返信
  3. よこから失礼します。

    登録用ファイル(quickaccess.txt)の保存形式・エンコードが原因だとおもいます。
    マクロのソースコード 32 行目で登録用ファイル(quickaccess.txt)の読みこみ/新規作成の形式が「ASCII」

    format.TRISTATE_FALSE

    になっていますので、以下のように変更してみてください。

    1. 32 行目を TRISTATE_FALSE → TRISTATE_TRUE に変更して上書き保存する

    var objFile = FSO.OpenTextFile( file_FullName, openMode.FORREADING, create.YES, format.TRISTATE_TRUE );

    2. 登録用ファイル quickaccess.txt を開いて、[名前をつけて保存] でエンコードを UTF-16LE (BOMなし) に変更して上書き保存する(ファイル名は変更しない)

    で文字化けしなくなるかとおもいます。

    ※ 私の環境(WinXP sp3, 32bit)では、元のソースコードのままだとシフト JIS 形式で quickaccess.txt が作成されていたので、TRISTATE_USEDEFAULT に変更したら日本語パスの文字化けやフォルダを開けないと言うような不具合はなくなりました。

    ※ 登録用ファイルのファイル名はマクロの実体ファイルとおなじベース名になっているとおもいますので、マクロ本体を「よく使うフォルダ.js」というファイル名で保存している場合は「よく使うフォルダ.txt」というファイルが登録用ファイルになります。
    JS ファイルと TXT ファイルは同一フォルダにあるはずですが、「よく使うフォルダ」マクロのポップアップメニューから [設定] >> [○○.txt を開く] というコマンドで登録用ファイルを開くことができます。

    c.f.
    また、同様(同等以上)の機能の「お気に入り2」プラグインというのもありますので、お試しで使ってみてはいかがでしょうか?

    メニューのキャプションをカスタマイズできる「お気に入り」プラグイン
    https://www.haijin-boys.com/discussions/3870
    お気に入り2 - MeryWiki
    https://www.haijin-boys.com/wiki/お気に入り2

     |  sukemaru  |  返信
  4. あぁ、またしても…(カブった)。

    文字化けやファイルを開けない不具合の解決法ですが、多分(WinXP しか知らないですが)登録用ファイルのエンコードを UTF-16 にするだけではなく、マクロ本体のソースコードの変更も必要になるとおもいます。 :|

    あと「お気に入り2」プラグインは、そもそもがファイルを登録するためのもので、ラベルを指定してフォルダを登録するには設定ファイルを直接編集しないといけないですから、もしかするとややこしく感じてしまうかも知れません。
    それでも、テキストファイル、フォルダ、インターネットアドレス、アプリケーション、メディアファイルなどを登録できる強力なランチャー機能が Mery のツールバーから利用できるようになりますから、おすすめです。 :)

     |  sukemaru  |  返信
  5. こんばんは、手石です。

    すでに上記で回答が上がっていますが……。
    登録用ファイル(quickaccess.txt)をMeryで開いてください。
    ステータスバーに「日本語(シフトJIS)」と表示されていない場合は、エンコードに
    日本語(シフトJIS)を指定して保存しなおしてください。
    このとき、「この文書は、選択されたエンコードで保存すると失われてしまう……」
    というダイアログが出た場合は、UTF-16(BOM付き)を選んで保存して、マクロの一
    部書き換えをお願いします。
    書き換える場所は FSO.OpenTextFile の第4引数で、format.TRISTATE_FALSE を
    format.TRISTATE_TRUE としてください。2箇所あります。

    これで動作すると思いますが、ダメだったらごめんなさい。

    それでは。

     |  手石  |  返信
  6. masmeさん、こんにちは。

    UTF-16かシフトJISしか扱えないとのご説明でしたので、シフトJISでファイルを保存したところ、無事に日本語が表示されました。
    ありがとうございました(^^)。

     |  くま  |  返信
  7. 手石さん、こんにちは。

    エンコードをシフトJISにしたところ、ちゃんと動作いたしました。
    ご対応ありがとうございました(^^)。

     |  くま  |  返信
  8. sukemaruさん、こんにちは。
    前回に引き続きまして、毎度ありがとうございます!

    quickaccess.txtをシフトJISで保存することでちゃんと動作するようになりましたが、おすすめしてくださった「お気に入り2」も試し始めました。確かに便利ですね! 色んなものが開けるので、ファイル、フォルダ、良く参照するPDFファイルなどを追加する作業をいま行っています♪

    それと、先日は正規表現のアドバイスをありがとうございました。sukemaruさんが \ によるエスケープや \dのことを教えてくださったおかげで、検索結果が出力されたテキストファイルから (324) みたいな部分(おそらく行数を示している部分)を除去する際に役立ちました。

    最後に1つ質問です。sukemaruさんの投稿ではコード部分がきれいに表示されています(format.TRISTATE_FALSEの行)。これはどのようにやっているのでしょうか?

    いつも役に立つアドバイスをありがとうございます(感謝)。

     |  くま  |  返信
  9. おつかれさまです。
    解決したようでなによりです。 :)

    > 質問です。sukemaruさんの投稿ではコード部分がきれいに表示されています(format.TRISTATE_FALSEの行)。これはどのようにやっているのでしょうか?
    フォーラムの投稿欄内で <pre> / </pre> タグで囲んだ部分は、ソースコード用のシンタクスハイライトが適用されたコラムになります。
    ※ "<pre> / </pre>" は小文字で記述します
    連続半角空白や TAB コードがそのまま適用されますのでソースコードの体裁がくずれることなく掲載されますし、投稿欄内で TAB キーで字下げされますのでギューなんです。 :D

    > 検索結果が出力されたテキストファイルから (324) みたいな部分(おそらく行数を示している部分)
    ご存知かもしれませんが、ファイルパスが記述された行にキャレットのある状態で F10 キーを押すと、当該ファイルを Mery で開いたりカッコ内で指定された 行,桁 にジャンプすることができます。

    ※ 範囲選択の有無は関係なく、キャレットのあるアクティブな行(アウトプットバーでも可)がファイルパス(作業フォルダからの相対パスでも可)であればジャンプできます。
    右クリックメニュー([編集] カテゴリ)のメニュー項目:「ファイルへ移動」という機能ですが、フォーラム内ではときどき「F10 ジャンプ」などとも呼ばれてます。

    実のところ、「quickaccess.txt」や 「Favorites.txt」のような「ファイルリスト的なドキュメント」を Mery で開いて F10 ジャンプを利用すればマクロやプラグインはいらないじゃん、という人もいますし、私も「ファイルリスト的なドキュメント」上での「ブックマーク一覧ジャンプ」マクロ+「F10 ジャンプ」を活用しています。 :)

    >> @Kuro さん
    Mery Wiki の編集フォームでも「TAB キー = 字下げ」を利用できるとよいのですが…(あと、編集欄内と実際の表示で TAB のケタ数がそろうとよいのですが)

     |  sukemaru  |  返信
  10. > Mery Wiki の編集フォームでも「TAB キー = 字下げ」を利用できるとよいのですが…(あと、編集欄内と実際の表示で TAB のケタ数がそろうとよいのですが)

    MeryWiki は私が開発したものではなく MediaWiki というウィキシステムを利用させていただいていますのでカスタマイズをすることはできないのです。

    以前にもご回答させていただきましたので、詳細はこちらをご覧ください。
    https://www.haijin-boys.com/discussions/4875#discussion-4882

     |  Kuro  |  返信
  11. >> くま さん
    作者の手石さんを待たずに検証不十分な書き込みをしてしまい、すみません。
    ともあれ、解決されたようでなによりです。

    >> sukemaru さん
    本題から外れているのですが失礼して。

    私の場合、Wiki の記事は Mery で書いています。それから編集フォームに貼り付け、プレビューで表示確認して微修正、という流れですね。

    テキストエディタである Mery なら TAB は普通に入力できますし、フォームに貼り付けるだけなら表示幅は気にせずに済みます。
    ちなみに、TAB の表示幅は環境によるので私は半角空白を多用してますが、今なら EditorConfig を使うのも手ですね。

    Mery にはアウトラインがあるので、下記のような設定例で
    レベル1: ^[=]{1} ☑(正規表現使用)
    レベル2: ^[=]{2} ☑
    レベル3: ^[=]{3} ☑
    レベル4: ^[=]{4} ☑
    レベル5: ^[;][^*#:] ☑
    レベル6: ^[*#]{1,}[^*#:] ☑
    MediaWiki 記法の「= 見出し1 =」「; 説明リスト」「* 箇条書き」などを一覧したり。
    正規表現による強調が使えるので、大雑把に <.*?> で HTML タグらしきものを色分けしたり。
    よく使う文字列はスニペットやマクロ、IME 辞書登録して出せるようにしたり。

    餅は餅屋、文章はテキストエディタ。すでにマクロを書けるレベルの sukemaru さんなら Mery を使わない手はないですよ!(ダイレクトマーケティング)

     |  masme  |  返信
  12. >> Kuro さん
    はい、すみません。
    その後も気がつくと Mery Wiki の仕様がカスタマイズされていたり… ということがしばしばあったので、独自の仕様追加的なメンテもしているのかな? とおもいまして。

    >> masme さん
    アドバイスいただき、ありがとうございます。
    …というか、長大な説明ページを書くときは当然ながら Mery で記述してコピペしています。
    『小マクロ集』とか、専用の編集モードにして編集していますから部分的な手直しであっても常に「すべて選択」→ コピペ です。 :D
    ですが、Wiki に編集補助機能が搭載されて便利になりましたので、ブラウザ上で Wiki タグなどを付けるほうが楽なんですよね…。

    見よう見まねでマクロを書きはじめて1年以上経ちましたが、コードをシンプルにまとめたりきれいに記述する技量もなく、二度とメンテなんてしたくないような出来のものばかりです(そういうのにかぎって要メンテ…)。
    大昔に Excel VBA をおぼえたはずなのに記憶のなかにはその残滓すらなく、VBE で当時のコードを開いてもなにを書いてあるかまったく分からない状態だったため皆さんに倣って JavaScript マクロに転向(?)した次第でして、コードが汚くなろうがなんだろうがインラインコメントを盛らないと不安で不安で仕方ないという有様です。 :(
    そんなわけで右余白のインラインコメントが多いので、ある程度 TAB インデントで整形をしないと Wiki だと見づらくなってしまうのです(Wiki に貼るときはインラインコメントを削ってしまえばよいのかもしれませんが)。
    ※ Kuro さんが以前 Mery のソースコードには僅か数行のコメントしか入れてないと書いていたの見たときは仰天しました。 LOL

    > ちなみに、TAB の表示幅は環境によるので私は半角空白を多用してますが、今なら EditorConfig を使うのも手ですね。
    なるほど、EditorConfig を活用すれば TAB 幅を Wiki に合わせることができますね。 :)
    編集モードと連動させることはできないようですから、Wiki 下書き用のファイル名の命名規則で用意するか、特定のフォルダ配下に下書きファイルを整理すればよいのかしら?
    これまでの「編集モードの自動選択」マクロで大体の用が足りていたので EditorConfig をあまり利用していませんでしたが、本格的に活用法を考えないと…。 :|

    ――トピの本旨に戻って――
    「よく使うフォルダ」マクロは、ソースコードをすこしカスタマイズして WshShell.Run( '"'+ hoge +'"' ); にすれば、「お気に入り2」プラグイン同様にファイルランチャーとしても活用できるみたいですね。

    ポップアップメニューにファイルパス登録用のコマンドを追加するのもすこしのアレンジだけで済みそうですし、特定のフォルダ配下の特定拡張子のファイルを一括でサブメニュー化したり、特定のフォルダにショートカットファイルを集めておけば自動でサブメニューに読みこんでくれるような仕様の追加もできそうです(ショートカットのリンク先の解決は OS 任せにしないとパフォーマンス落ちそうですが)。
    このマクロを使わせていただいていた頃はまだ WSH ネイティブのメソッドなんて全然分かっていませんでしたから、拡張性の高さにはまったく気がつきませんでした。

    また、「よく使うフォルダ」マクロにかぎってではありませんが、マクロから任意のファイルを Mery で開きたいときも WshShell.Run( '"' + Editor.FullName + '" "' + file_path + '"' ); にしてしまえば、そのファイルをすでに開いているかどうかや Editor.OpenFile() のまえに Editor.NewFile() を入れる必用があるかどうかなどの判別処理が必要ないということに最近気付きました。
    とりあえず WshShell.Run( "Mery.exe " + file_path ) しちゃえば、あとは Mery 側が「ファイルがすでに開かれているか」をチェックしてアクティブ化してくれるというステキ仕様! :)

     |  sukemaru  |  返信
  13. > その後も気がつくと Mery Wiki の仕様がカスタマイズされていたり… ということがしばしばあったので、独自の仕様追加的なメンテもしているのかな? とおもいまして。

    MeryWiki は MediaWiki のエクステンション (Mery でいうとプラグインみたいな感じ) を導入しています。

    MediaWiki はエクステンションで色々機能を追加できるのですが、タブキーを有効にするエクステンションは現在メンテされておらず MeryWiki で使っている MediaWiki のバージョンには対応していないのです。

    エクステンションを自分で開発すれば良いわけですが、私は MediaWiki の知識も PHP の知識もニワカなのでそこまでの技術がありません。

    ご不便をおかけして申し訳ございませんが、ご理解くださいますようお願い申し上げます。

     |  Kuro  |  返信
  14. sukemaruさん、こんばんは。

    「小なり括弧 pre 大なり括弧」と「小なり括弧 / pre 大なり括弧」でソースコードがそのまま掲載されるのですね。ありがとうございます。

    > ご存知かもしれませんが、ファイルパスが記述された行にキャレットのある状態で F10 キーを押すと、当該ファイルを Mery で開いたりカッコ内で指定された 行,桁 にジャンプすることができます。

    全く知りませんでした(汗)。
    「アウトプットバーでも可」と教えていただいたことで、コンパイルエラーを潰す作業がめちゃくちゃ楽になりました!

    MeryでMQL4のコンパイルを行い、エラーメッセージをアウトプットバーに出力しているのですが、今まではアウトプットバーを見て、Ctrl + G で行番号を入力し、エラー箇所へ飛んでいました。
    しかし、sukemaruさんの書き込みを読んで、アウトプットバーに表示されているエラーメッセージの上で F10 を押したら、エラー箇所にカーソルが移動してくれました。

    ものすごく便利です。ありがとうございます!!!
    実は、「ファイルへ移動」の意味が分からず全く使用していなかったので、本当に助かりました。

     |  くま  |  返信
  15. > 作者の手石さんを待たずに検証不十分な書き込みをしてしまい、すみません。
    > ともあれ、解決されたようでなによりです。

    いえいえ、とんでもございません。
    アドバイスをしていただき、ありがとうございました。

     |  くま  |  返信
スポンサーリンク