「
定型文を挿入
」を編集中
2018年12月3日 (月) 22:16時点における
Sukemaru
(
トーク
|
投稿記録
)
による版
(
→
ポップアップメニューで定型文ファイルを指定する
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
「定型文を挿入」というと公式プラグインの「[[プラグイン:スニペットプラグイン|スニペットプラグイン]]」や、[ファイル] メニューの「[[ヘルプ:ファイル#挿入|挿入...]]」コマンドがありますが、アレンジ/バリエーションとしていくつかのパターンを用意してみました。 ※あらかじめ定型文用のテキストファイルを用意してください。 ※ソースコード内で ■ の付いた部分の設定やファイルパスを変更して使用してください。 "[[マテリアルデザインっぽいアイコンと『小マクロ集』|Mery用 マテリアルデザインっぽいアイコン.icl]]" に署名(連絡先)の定型文用の @ アイコンと、コピーライトの定型文用の © アイコンがあります。 == 定型文を一発で挿入 == [[キーアサイン集#定型文をファイルから挿入|キーアサイン集]]にあるマクロです。 <br>文書の雛形用の定型文や署名(連絡先、コピーライト)などのテンプレートを、あらかじめ用意したテキストファイルから取り込みます。 <source lang="javascript"> #title = "定型文を挿入" #tooltip = "定型文をファイルから一発挿入" // #icon = "" // 一発の操作であらかじめ指定済みのファイルから定型文を挿入する // ■挿入する定型文ファイルを "フルパス" で指定■ var file = "C:\\hoge\\Template.txt"; // ( \ はふたつ重ね \\ にすること) var pos = document.selection.GetActivePos(); document.selection.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 // 挿入した定型文の先頭にカーソルを移動(不要ならコメントアウト) document.selection.SetActivePos( pos ); </source> == 定型文つき新規ドキュメント == 編集中のファイルに挿入するのではなく、定型文を貼り付けた「無題」のドキュメントを新規に開きます。 このマクロを利用して、Mery を起動時に定型文(テンプレート)を貼り付け済みの「無題」のドキュメントを開くショートカットをつくることができます。以下の例の "'''%Programfiles%\Mery'''" の部分は、Mery のインストールフォルダのパスに書きかえてください。 * リンク先 : %Programfiles%\Mery\Mery.exe /mf Macros\定型文つき新規ドキュメント.js * 作業フォルダ(カレントディレクトリ) : %Programfiles%\Mery <source lang="javascript"> #title = "定型文つき新規ドキュメント" #tooltip = "定型文つきの「無題」ドキュメントを新規タブで開く" // #icon = "" // ■挿入する定型文ファイルを "フルパス" で指定■ var file = "C:\\hoge\\Template.txt"; // ( \ はふたつ重ね \\ にすること) // 「/mf」オプションのショートカットファイルから実行する場合は NewFile() の行は不要 editor.NewFile(); // 新規「無題」タブ editor.ActiveDocument.selection.InsertFromFile( file, 0 ); // 0 は文字エンコードの「自動選択」 editor.ActiveDocument.selection.SetActivePoint( mePosLogical, 1, 1 ); // ドキュメントの先頭にカーソルを移動 </source> == 定型文ファイルのテキストをクリップボードに取り込む == 定型文ファイルを一時的に開き、内容をコピーして閉じます。 <source lang="javascript"> #title = "定型文をコピー" #tooltip = "定型文ファイルの内容をクリップボードにコピーする" // #icon = "" // ■定型文ファイルを "フルパス" で指定する■ var file = "C:\\hoge\\Template.txt"; // ( \ はふたつ重ね \\ にすること) Redraw = false; editor.NewFile(); editor.OpenFile( file, 0 ); // 0 はエンコードの「自動選択」 ClipboardData.SetData( editor.ActiveDocument.Text ); editor.ActiveDocument.Close(); Redraw = true; </source> == ファイルパスをダイアログに入力して指定する == テキスト入力ダイアログで定型文ファイルのフルパスを指定します。 <br>入力ダイアログをキャンセルした場合は、あらかじめ指定してあるデフォルトの定型文ファイルから挿入します。 <source lang="javascript"> #title = "定型文を挿入" #tooltip = "定型文をファイルから挿入(入力ダイアログ)" // #icon = "" // ■デフォルトの定型文ファイルを "フルパス" で指定する■ var file = "C:\\hoge\\Template.txt"; // ( \ はふたつ重ね \\ にすること) // 入力ダイアログをキャンセルしたときに「デフォルトの定型文テキスト」を挿入したくないならば file = "" にしておく // 挿入する定型文ファイルをテキスト入力ダイアログで指定する var p = Prompt( "ファイルパス:", file ).replace( /^\"|\"$/g , "" ); file = ( p.match( /^[a-zA-Z]:\\/ ) ) ? p : file; var pos = document.selection.GetActivePos(); if ( file ) document.selection.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 // 挿入した定型文の先頭にカーソルを移動(不要ならコメントアウト) document.selection.SetActivePos( pos ); </source> == 「挿入」ダイアログで定型文ファイルを選択する == [ファイル] メニューの「[[ヘルプ:ファイル#挿入|挿入...]]」ダイアログで定型文ファイルを選択します。あらかじめ定型文ファイルを集めてあるフォルダパスを指定することで、ファイル選択ダイアログ内でディレクトリをあっちやこっちやと辿る必要がないようにしてあります。 <br>「挿入」ダイアログをキャンセルした場合は、あらかじめ指定してあるデフォルトの定型文ファイルから挿入します。 <br> → ref. 「[[特定のフォルダで「ファイルを開く」ダイアログ|特定のフォルダで『ファイルを開く』ダイアログ]]」マクロ <source lang="javascript"> #title = "定型文を挿入" #tooltip = "定型文をファイルから挿入(挿入ダイアログ)" // #icon = "" // ■「挿入...」ダイアログで起点にするフォルダを指定する■ var folder = "%userprofile%\\desktop\\"; // (\ はふたつ重ね \\ にする / 末尾にも \\ を付ける) // 起点フォルダを指定する必要がないならば folder = "" にしておく // ■デフォルトの定型文ファイルを "フルパス" で指定する■ var file = "C:\\hoge\\Template.txt"; // ( \ はふたつ重ね \\ にすること) // 「挿入」ダイアログをキャンセルしたときに「デフォルトの定型文テキスト」を挿入したくないならば file = "" にしておく var pos = document.selection.GetActivePos(); var st = document.Text; var cb = ClipboardData.GetData(); // クリップボードのデータを退避 if ( folder ) { ClipboardData.SetData( folder ); new ActiveXObject( "WScript.Shell" ).SendKeys( "^V~{DEL}%T{DOWN}{END}~%N" ); } editor.ExecuteCommandByID( 2067 ); // 「挿入...」コマンド(ダイアログ) if ( document.Text == st ) // 「挿入」ダイアログをキャンセルした場合 document.selection.InsertFromFile( file, 0 ); // 「ファイルから挿入」 ClipboardData.SetData( cb ); // クリップボードのデータを復帰 // 挿入した定型文の先頭にカーソルを移動(不要ならコメントアウト) document.selection.SetActivePos( pos ); </source> == ポップアップメニューで定型文ファイルを指定する == 上出の各種のパターンをポップアップメニューから選択して実行します(操作の手数は増えてしまいますが、マクロの数を増やさずに済みます)。 <source lang="javascript"> #title = "定型文を挿入" #tooltip = "定型文をファイルから挿入(ポップアップメニュー)" // #icon = "" // コード内の ■ の付いた部分の設定やファイルパスを変更して使用してください。 // ■「デフォルトの定型文ファイル」を "フルパス" で指定する■ var file = "C:\\hoge\\Template.txt"; // ( \ はふたつ重ね \\ にすること) // 「デフォルトの定型文ファイル」を定義したくないならば file = "" にしておく // ■挿入した定型文の先頭にカーソルを移動させるか?■ var topPos = true; // true : 移動させる / false:移動させない var m = CreatePopupMenu(); // ■不要な項目は m.Add の前に // を付けてコメントアウトする■ m.Add( "ファイル選択ダイアログ(&O)..." , 1 ); m.Add( "入力ダイアログでフルパスを指定(&D)..." , 2 ); // m.Add( "選択範囲の文字列(ファイルパス)から(&P)" , 3 ); m.Add( "クリップボードの文字列(ファイルパス)から(&B)" , 4 ); m.Add( "", 0, meMenuSeparator ); m.Add( "定型文つき新規ドキュメント(&N)" , 5 ); m.Add( "", 0, meMenuSeparator ); // ■ここでメニュー項目名と ID( r )を定義し■下部の default: のコード内でフルパスを指定する■ // m.Add( "項目名" , r ); m.Add( "定型文 Tenplate.txt (&T)" , 7 ); m.Add( "署名 Signature.txt (&S)" , 8 ); m.Add( "コピーライト CopyRight.txt (&R)" , 9 ); // m.Add( "定型文2 Tenplate2.txt" , 10 ); // m.Add( "定型文3 Tenplate3.txt" , 11 ); m.Add( "", 0, meMenuSeparator ); m.Add( "定型文ファイルの内容をコピー(&C)" , 6 ); var s = document.selection; var pos = ( s.IsEmpty ) ? s.GetActivePos() : /* else */ s.GetTopPointX( mePosLogical ); var r = m.Track( mePosMouse = 1 ); switch ( r ) { case 0: break; case 1: // 「挿入...」ダイアログで定型文ファイルを指定する // 「挿入」ダイアログをキャンセルした場合は、「デフォルトの定型文ファイル」から挿入する // ■「挿入」ダイアログで起点にするフォルダを指定する■ var folder = "%userprofile%\\desktop\\"; // (\ はふたつ重ね \\ にする / 末尾にも \\ を付ける) // 起点フォルダを指定する必要がないならば "" にしておく var st = document.Text; var cb = ClipboardData.GetData(); // クリップボードのデータを退避 if ( folder ) { ClipboardData.SetData( folder ); new ActiveXObject( "WScript.Shell" ).SendKeys( "^V~{DEL}%T{DOWN}{END}~%N" ); } editor.ExecuteCommandByID( 2067 ); // 「挿入...」 if ( document.Text == st ) // 「挿入」ダイアログをキャンセルした場合 s.InsertFromFile( file, 0 ); // 「ファイルから挿入」 ClipboardData.SetData( cb ); // クリップボードのデータを復帰 break; case 2: // テキスト入力ダイアログで定型文ファイルのフルパスを指定する // 入力ダイアログをキャンセルした場合は、「デフォルトの定型文ファイル」から挿入する // 挿入する定型文ファイルをテキスト入力ダイアログで指定する var p = Prompt( "ファイルパス:", file ).replace( /^\"|\"$/g , "" ); file = ( p.match( /^[a-zA-Z]:\\/ ) ) ? p : file; if ( file ) s.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 break; case 3: // 選択範囲の文字列がファイルパスならば、そのパスの定型文ファイルの内容に置きかえる // 選択範囲がファイルパスでない場合は、「デフォルトの定型文ファイル」の内容で置きかえる var st = s.Text.replace( /^\"|\"$/g , "" ); file = ( st.match( /^[a-zA-Z]:\\/ ) ) ? st : file; if ( file ) { s.Delete(); s.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 } break; case 4: // クリップボードの文字列がファイルパスならば、そのパスの定型文ファイルから挿入 // クリップボードがファイルパスでない場合は、「デフォルトの定型文ファイル」から挿入する var cb = ClipboardData.GetData().replace( /^\"|\"$/g , "" ); file = ( cb.match( /^[a-zA-Z]:\\/ ) ) ? cb : file; if ( file ) s.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 break; case 5: // 編集中のファイルに挿入するのではなく、定型文を貼り付けた「無題」のドキュメントを新規に開く // ■「デフォルトの定型文ファイル」以外の定型文ファイルを指定するなら以下の1行をアンコメントする // file = "C:\\hoge\\Template2.txt"; // \ はふたつ重ね \\ にすること editor.NewFile(); editor.ActiveDocument.selection.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 // ドキュメントの先頭にカーソルを移動 if ( topPos ) editor.ActiveDocument.selection.SetActivePoint( mePosLogical, 1, 1 ); Quit(); break; case 6: // 定型文ファイルを一時的に開いてテキストをクリップボードに取り込む Redraw = false; editor.NewFile(); editor.OpenFile( file, 0 ); // 0 はエンコードの「自動選択」 ClipboardData.SetData( editor.ActiveDocument.Text ); editor.ActiveDocument.Close(); Redraw = true; break; default: // あらかじめ用意してある各種定型文ファイルを "フルパス" で指定 // ■番号 r はメニュー項目の定義にあわせる■ // ■"ファイルパス" は適宜変更する(\ はふたつ重ね \\ にすること)■ // ※不要な項目はメニューの定義の行をコメントアウトする file = ( r == 7 ) ? "C:\\hoge\\Template.txt" : // 定型文 ( r == 8 ) ? "C:\\hoge\\Signature.txt" : // 署名(連絡先) ( r == 9 ) ? "C:\\hoge\\CopyRight.txt" : // コピーライト ( r == 10 ) ? "C:\\hoge\\\Template2.txt" : // 定型文2 ( r == 11 ) ? "C:\\hoge\\\Template3.txt" : // 定型文3 /* else */ file; s.InsertFromFile( file, 0 ); // 0 はエンコードの「自動選択」 break; } if ( topPos ) s.SetActivePos( pos ); // キャレットをマクロ開始前の座標に戻す </source> == エンコード定数 == * [[マクロリファレンス]] >> [[マクロリファレンス:エンコード定数|エンコード定数]] より (抄) <source lang="javascript"> meEncodingNone => 0 自動選択 meEncodingUTF8 => 65001 Unicode (UTF-8) meEncodingUTF8BOM => 650011 Unicode (UTF-8 BOM有) meEncodingUTF8NoBOM => 650010 Unicode (UTF-8 BOM無) meEncodingShiftJIS => 932 日本語 (シフト JIS) </source>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク