「
選択範囲のURL・パスを開く
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
==== 仕様詳細(コメントドキュメント) ==== ::::: [[#設定項目|>> コメントドキュメント部分をスキップ]] #title = "選択範囲のURL/パスを開く" #tooltip = "選択範囲のURLやパスを既定のプログラムで開く" #icon = "run_with[1].ico" // #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",40 /** * ※ 選択範囲や行の先頭の「'''//'''」「''';'''」などの行コメント記号、 * 「'''・'''」「'''*'''」などの箇条書き記号、および「●」「◆」などの記号は、 * 行頭/行末の空白文字や禁止文字 <code><></code> とあわせて除去したうえで処理します。(2019/03/15 追加) * <code> =-⁃・・•◦‣○●■◆▼▲※→⇒〜~†*:;#' </code> * * ・カレントフォルダ/相対パス/<b style="color:#0000c0;">代替PATH</b>にあるフォルダ/ファイルでファイル名の先頭に * 除去対象の記号があるとフォルダ名/ファイル名だけでは開かなくなります。 * e.g. <code>"●FolderName"</code> は不可 * → フルパス(絶対パス)や <code>".\◆FolderName"</code> は可 * * ・<b style="color:#0000c0;">お気に入り</b>のキーワードの先頭に除去対象の記号を使用しないで下さい。 * * ・「'''//'''」ではじまるネットワークパス <code>//Android/shared/</code> は開きません。 * → <code>\\Android\shared\</code> は可(…多分) * * ※ 選択範囲や行全体が対になる1組のカッコで囲われている場合、 * カッコを除去できます。(2019/03/15 追加) * * ➀: Mery では <code>" < ></code> 以外にも <code>! ' ( ) * [ ] ^ ` { | }</code> が * URL用文字から除外されていますが、これらの文字をふくむために * エディタ上で正しいハイパーリンクになっていないURL文字列でも既定のブラウザで開きます。 * * ※ 文字列を「'''" "'''」で囲って丸投げするだけなので、URLエンコードはブラウザ任せです。 * 「日本語URL」も既定のブラウザに送りますが、対応できるかはブラウザ側の仕様に依存します。 * ※ 行頭から <code>http://</code> までの文字列は無視しますが、 * URLの後ろに続く文字列は除去しません。 * ※ 開けるのは先頭に <code>http:// </code>か <code>https://</code> がついた URL 文字列のみです。 * <code>www.example.com/hoge/</code> のような <code>http://</code> が省略された文字列には対応しません。 * * ➁: メールアドレスなら既定のメールクライアントでメッセージを新規作成します。 * * ※ <code>mailto:</code> の有無によらずにメールアドレス文字列を開きます。 * ※ メールアドレスとおなじ名前のフォルダを相対パスや <span style="color:#0000c0;">PATH</span> 略記のパスとして * 優先的に開きたい場合は、➁ のコードを下位(➉の上)に移動させてください。 * ※ メールアドレスの判定基準は「メールアドレス 正規表現」で検索トップにあった * サイトからの拾い物です。 * ref. 『メールアドレスを表す現実的な正規表現 - Qiita』 * https://qiita.com/sakuro/items/1eaa307609ceaaf51123 * * ⓪: Mery の「ファイルへ移動」コマンド用の (行,桁) 番号指定つきフルパスの書式 * <code>C:\Program Files\Mery\Mery.txt(2,5)</code> * でファイルの実在確認ができるものは、行・桁 指定のコマンドラインに置換して * <code>"Mery.exe" /l 2 /cl 5 "C:\Program Files\Mery\Mery.txt"</code> * 実行中の Mery のプロセスで開きます。(2019/03/15 追加) * * ※ 実在するファイルでも「拡張子に (カッコ) が含まれている」など * 拡張子と規定のプログラムのヒモづけが定義されていないものは * <code>WScript.Shell.Run()</code> がエラーを返し開けないようなので * ( Win+R の「ファイル名を指定して開く」では開ける)、 * この「Mery で開く」コードを ➂ の "フルパスを開く" コードよりも先に処理します。 * * ➂: 選択範囲の文字列がファイルやフォルダのフルパスなら、 * 実在確認して既定のプログラムで実行します * (環境変数を <code>%PATH%</code> 形式で短縮したパスも展開し、 * 実在確認をして既定のプログラムで実行します)。 * ネットワークフォルダの <code>\\パス</code> も、実在確認をして既定のプログラムで実行します。 * * ※<s>「 '''//''' 」か</s>「 '''\\''' 」ではじまる行を選択範囲に含めると、 * ネットワークフォルダの実在確認を試行するため、検索に時間がかかります * (<s>「 '''//''' 」か</s>「 '''\\''' 」の直後が空白文字や禁止文字なら ➂ をスキップします)。 * → 先頭の「 '''//''' 」を除去するコードを追加(2019/03/11) * ※ フルパスでない文字列でも FileSystemObject が勝手に相対パスや <span style="color:#0000c0;">PATH</span> を補完して * ➂ のメソッドで開くことがあるようでます。 * * ➃: 環境変数を <code>%PATH%</code> 形式で短縮したパスの場合は、省略された拡張子も補完します。 * ※ 実行ファイルに引数を渡す場合は、パスを「'''" "'''」で囲ってください(後述)。 * * ➄~➆: アクティブなドキュメントのカレントディレクトリからの相対パスとして * ファイルやフォルダの実在確認ができるなら、既定のプログラムで実行します。 * * ※ 処理できる相対パスの形式は、 * ➄: 先頭だけに <code> ..\ </code> または <code> .../ </code> が付いたものか(拡張子を補完しない) * ➅: カレントディレクトリまでのパスを完全に省略したもののみで、 * パスの途中にも <code> .\ </code> などがあるものは処理しません。 * ➆: ➅のパターンにたいして、省略された拡張子を補完します。 * * ➇: システム環境変数 <span style="color:#0000c0;">PATH</span> を省略したパスを補完し、 * 実在確認をして既定のプログラムで実行します。 * ➈: 拡張子 <span style="color:#0000c0;">PathExt</span> が省略されたものも、 * 定義配列から実在確認を試行して実行します。 * * ※ <code>WScript.Shell.Run()</code> は本来 <span style="color:#0000c0;">PATH</span> や <span style="color:#0000c0;">PathExt</span> (および <span style="color:#0000c0;">App Paths</span>)を * 補完して実行させられますが * 実在確認してから実行させないとマクロのエラーとして扱われてしまうので、 * ➇, ➈ で処理するシステム環境変数 <span style="color:#0000c0;">PATH</span> は、'''定義配列'''に手動で列挙したもののみとします。 * ※ パスのとおった <span style="color:#0000c0;">App Paths</span> も、<b style="color:#0000c0;">Path の定義配列</b> に親フォルダのパスを * 手動で追加しないと処理しません(<span style="color:#0000c0;">App Paths</span> はプログラムのインストーラが * レジストリに書き込んだ <span style="color:#0000c0;">PATH</span> の代用機能です。 * 配下のレジストリキー名で実行するとキーの配下に記述されたプログラムを起動できます)。 * <code>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths]</code> * * ➉: <code>file://~</code> への絶対パスを既定のプログラムで実行します。 * * ※ 先頭の <code>"file://"</code> を外しローカルファイルとして実在確認をしてから * ドライブ名以降のパスを <code>WScript.Shell.Run()</code> に投げて実行させます。 * ➉ のメソッドはネットワークドライブのファイル/フォルダには対応しません。 * * ⑪: なんでもいいから <code>WScript.Shell.Run()</code> に投げて実行させます。 * <code>shell:</code>コマンドなどパスのかたちを取っていないものはこれでしか実行できませんが、 * ミスタイプやファイルやフォルダが実在しない場合には * マクロのエラーとして扱われるので「<b style="color:#c00;">非推奨</b>」です。 * ※ 設定変数により ⑪ のコードは初期状態で無効化してあります。 * * ▼ 共通 ▼ * ※※※ 基本的に範囲選択して実行する前提です ※※※ * * ・範囲選択なしのときは、アクティブな論理行の文字列を取得して URL/パス を実行します。 * 選択範囲や各行の先頭/末尾の「空白文字」「'''<>'''」は無視します。 * * ・複数行の各行にひとつずつ列挙された URL/パス * それぞれを既定のプログラムで実行することができます。 * 箇条書きの行であれば行頭記号をはずして URL/パス を開きます。 * * ・➀ URL、➁ メールアドレス、⑪ 強制執行は、実在確認なしで実行します、 * ⓪, ➂~➈ ローカルファイル/フォルダのパスは、実在確認して実行します。 * ・<code>%PATH%</code> 形式で略記されたパスは、展開してから実在確認して実行します。 * * ・すべて <code>WScript.Shell.Run()</code> での起動処理なので、ファイル/フォルダの * 実在確認ができてもイレギュラーなファイル名や拡張子の場合は開けないことがあります。 * e.g. <code>c:\hoge\fuga.h(1)</code> ← 規定のプログラムが定義されていない拡張子 * * ・選択範囲や各行内の先頭に「'''" "'''」で囲われた部分があれば、 * 「'''" ~ "'''」をパス(コマンド)と見做し、 * 「'''" ~ "'''」より後ろの文字列を引数(コマンドラインオプション)として処理します。 * * ※※※ 基本的に引数つきのコマンドラインを処理する前提ではありません ※※※ * * 選択範囲の先頭に「'''" "'''」で囲われた部分がない場合は、 * 引数付きのコマンドであっても実行しません * (パスの中に半角スペースがあっても「'''" "'''」なしで開けることを優先するための仕様です)。 * * 引数部分の「'''" "'''」の有無は考慮せず、<code>WScript.Shell.Run()</code> にそのまま渡します。 * 引数部分が環境変数 <span style="color:#0000c0;">Path, PathExt</span> でディレクトリパスや拡張子を省略されていても * マクロでは補完処理しません(環境変数<b style="color:#0000c0;">Path, PathExtの代替定義</b>用の配列も適用しません)。 * 引数部分は実在確認しないので、<code>%PATH%</code> も展開しないでそのまま渡します。 * * ・選択範囲の文字列の先頭が「'''"'''」でそれを閉じる「'''"'''」の位置が不適切 * (または閉じる「'''"'''」がない)場合、 * ➇ のコードにより<b style="color:#0000c0;">代替PATH</b>配列内の最初のフォルダが開くようです。 * (→ 2019/03/15 「空行をスキップ」のコードで阻止) * * ・選択範囲の文字列がドット「 '''.''' 」だけで実行すると * ➅ のコードによりアクティブドキュメントの「カレントフォルダ(親フォルダ)」が開きます。 * 「 '''..''' 」ならその親フォルダが開くので、 * <code>WScript.Shell.Run()</code> が相対パスとして処理しているようです。 * (これもこれで面白いので、あえてデバッグしないで残しておきます) * * ・拡張子 <span style="color:#0000c0;">PathExt</span> の補完は、➃, ➆, ➈ の場合のみとします。 * * ・「<b style="color:#0000c0;">お気に入り</b>」の URL やパスを特定の「キーワード」で開くこともできます。 * ・「<b style="color:#0000c0;">省略可能なフォルダパス</b>」配下のフォルダ/ファイルは、 * 「フォルダ名」や「ファイル名」だけで開けます(※<b style="color:#0000c0;">代替PATH</b>機能)。 * '''以下のような 文字列/論理行 を開くことができます''' (※ 行頭/行末の空白は無視し、無効な行はスキップします)。 ▼ 日本語や半角スペースなどの禁止文字を含む URL(<code>http://</code> があるもののみ) ▼ <code> <nowiki>"https://www.haijin-boys.com/wiki/よくある質問#.E6.97.A5.E6.9C.AC.E8.AA.9E.E3.82.92.E5.90.AB.E3.82.80_URL_.E3.82.92.E8.AA.8D.E8.AD.98.E3.81.97.E3.81.9F.E3.81.84"</nowiki> </code> <code><nowiki>https://www.haijin-boys.com/wiki/マクロリファレンス:Selection インターフェイス</nowiki></code> ▼ メールアドレス(<code>mailto:</code> あり/なし) ▼ <code> < hogehoge@example.com > </code> ▼ ファイル/フォルダパス(絶対パス:フルパス) ▼ <code>C:\Program Files </code> <code>"c:\windows\system32\notepad.exe" </code> <code>[ C:\Program Files\Mery\Mery.txt ]</code> ▼ アクティブなドキュメントからの相対パス(<code>..\</code> 形式の場合は、要 拡張子) ▼ <code>"連続する重複行を削除" </code> <code>..\Mery.ini </code> ▼ 環境変数で短縮/省略されたパスやコマンドライン ▼ <code>%PROGRAMFILES%\internet explorer\iexplore</code> <code>"calc" </code> <code>cmd</code> <code>(regedit)</code> <code>"notepad" "%PROGRAMFILES%\Mery\Mery.txt"</code> <code>"explorer" /select, %USERPROFILE%\ntuser.ini</code> ▼ インターネットアドレス形式のパスやネットワークパス、[<code>shell:</code>コマンド ←<b style="color:#c00;">非推奨</b>(※実在確認なし)] ▼ <code>file:///c:/boot.ini </code> <code>\\Android\shared</code> <code>shell:Desktop </code> ▼ 行頭に箇条書きの記号や行コメントの記号がある URL/パス ▼ <code> ・eula.rtf</code> <code><nowiki>// <https://www.haijin-boys.com/software/mery/</nowiki></code> ▼ Mery フォルダにショートカットファイルを置くと、 「無題」ドキュメント上の「ショートカット名の文字列」で起動できる。 ▼ または ※<b style="color:#0000c0;">代替PATH配列</b>※ のフォルダにショートカットファイルを置くと、 すべてのドキュメント上の「ショートカット名の文字列」で起動できる。 <code>"foobar2000.exe - ショートカット"</code> * */
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
編集を中止
編集の仕方
(新しいウィンドウで開きます)
スポンサーリンク
案内メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク