「
利用者:Sukemaru
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
=== Document.Selection オブジェクトの各種メソッドについて === ==== ChangeCase() メソッド ==== [[マクロリファレンス:Selection インターフェイス#ChangeCase メソッド|Selection.ChangeCase() メソッド]] は * 全角/半角の英字(いわゆるラテンアルファベット <code>A-Z</code>, <code>a-z</code>, <code>A-Z</code>, <code>a-z</code>)以外の欧文アルファベット(ギリシア文字、キリル文字など)やローマ数字の「大文字/小文字/頭文字」変換にも対応。 * 選択範囲内のテキストが「漢字と平仮名のみ」のばあいなど、「大文字/小文字/頭文字」変換されなかったさいにも '''Undo''' 履歴や [https://www.haijin-boys.com/software/mery/mery-2-6-9#4 変更行の強調表示] が残る。 : ''ref.'' [[#文字列操作が空振りしたときは undo 履歴に残さない|文字列操作が空振りしたときは undo 履歴に残さない]] : ''ref.'' 拙作「[[大文字/小文字/頭文字 トグル変換]]」マクロ ==== ChangeWidth() メソッド ==== [[マクロリファレンス:Selection インターフェイス#ChangeWidth メソッド|Selection.ChangeWidth() メソッド]] は * 選択範囲内のテキストが「漢字と平仮名のみ」のばあいなど、「全角/半角」変換されなかったさいにも '''Undo''' 履歴や [https://www.haijin-boys.com/software/mery/mery-2-6-9#4 変更行の強調表示] が残る。 : ''ref.'' [[#文字列操作が空振りしたときは undo 履歴に残さない|文字列操作が空振りしたときは undo 履歴に残さない]] : ''ref.'' 拙作「[[全角/半角 トグル変換]]」マクロ ==== Collapse() メソッド ==== [[マクロリファレンス:Selection インターフェイス#Collapse メソッド|Selection.Collapse() メソッド]] で引数 '''''meCollapseEnd''''' を指定した場合は <code>document.selection.SetActivePos( Selection.GetActivePos() ) </code> '''''meCollapseStart''''' を指定した場合は <code>document.selection.SetActivePos( Selection.SetAnchorPos() )</code> * 引数を省略した場合は ''meCollapseStart'' として動作する。 * ''meCollapseStart / meCollapseEnd'' はそれぞれ「選択開始位置」と「選択終了位置 (キャレット位置)」を指し、「選択範囲の 先頭/末尾」ではない。 * [[マクロリファレンス:Selection インターフェイス#SelectLine メソッド|Selection.SelectLine()]] や [[マクロリファレンス:Selection インターフェイス#SelectWord メソッド|Selection.SelectWord()]] メソッドなどでの範囲選択では「キャレット位置=選択範囲の末尾」となり、[[マクロリファレンス:Selection インターフェイス#Find メソッド|Selection.Find()]] や [[マクロリファレンス:Selection インターフェイス#FindRepeat メソッド|Selection.FindRepeat()]] メソッドでの範囲選択では「キャレット位置=選択範囲の先頭」なので、つづけて Collapse() メソッドを使用するときは注意が必要 (…というほどのことでもないか?)。 ==== DuplicateLine() メソッド ==== [[マクロリファレンス:Selection インターフェイス#DuplicateLine メソッド|Selection.DuplicateLine() メソッド]] は * 行末の改行が選択範囲に含まれているときや複数行選択の状態から実行したとき、キャレットのある論理行 ActivePointY が複製対象になる(複数行不可)。 * 行を複製したあとのキャレットの位置(桁)が、メソッド実行前の ActivePointX ではなく AnchorPointX になる。 ⇒ 複数行選択状態や、行番号クリックでの行選択状態から実行した後のキャレット位置が不自然なかんじになる。 じっさいのマクロのコーディングでは行全体の文字列を <syntaxhighlight lang="javascript"> // 1行選択 document.selection.StartOfLine( mePosLogical ); document.selection.EndOfLine( mePosLogical, true ); </syntaxhighlight> または [[#複数行の論理行を範囲選択(末尾改行を含まない)|複数行の論理行を範囲選択(末尾改行を含まない)]] のようなコードで範囲選択状態にしてから「行を複製」することが多いので、<syntaxhighlight lang="javascript" inline>document.selection.Text = document.selection.Text + "\n" + document.selection.Text;</syntaxhighlight> とすれば「複製」後のキャレット位置が曖昧になることはない。 : ''ref.'' 拙作「[[行を複製 (複数行可)]]」マクロ ==== Indent/Unindent() メソッド ==== [[マクロリファレンス:Selection インターフェイス#Indent メソッド|Selection.Indent() メソッド]] / [[マクロリファレンス:Selection インターフェイス#Unindent メソッド|Selection.Unindent() メソッド]] は * 「選択範囲のテキスト」ではなく、「選択範囲をふくむ論理行全体」が操作対象。 * 選択範囲が表示行での1行全体に達していないと空振りするので、事前に行全体を範囲選択する(''e.g.'' <syntaxhighlight lang="javascript" inline>document.selection.SelectLine(); // または SelectLine( true );</syntaxhighlight> )や [[#複数行の論理行を範囲選択(末尾改行を含まない)|複数行の論理行を範囲選択(末尾改行を含まない)]] のようなコードが必要。 * 実行可能条件を満たしてから実行すると、「もとの選択範囲をふくむ論理行全体 (<span style="color:#0000c0;">末尾改行を'''ふくむ'''</span>)」が範囲選択された状態で残る。 * 引数に 1 以上の数値を渡して実行すると、「元に戻す」さいには <code>document.selection.Indent(n)</code> や <code>document.selection.Unindent(n)</code> での引数の値とおなじ回数の [[マクロリファレンス:Document インターフェイス#Undo メソッド|<code>document.Undo()</code>]] や Ctrl+Z の操作が必要。 : ''ref.'' 「[[非選択状態でも逆インデント]]」「[[字下げ・字上げ]]」など、標準のインデント/逆インデント機能の代替マクロがマクロライブラリにある。 ==== NewLine() メソッド ==== [[マクロリファレンス:Selection インターフェイス#NewLine メソッド|Selection.NewLine() メソッド]] は * 引数に 1 以上の数値を渡して実行したばあい、「元に戻す」さいには <code>document.selection.NewLine(n)</code> での引数の数値とおなじ回数の [[マクロリファレンス:Document インターフェイス#Undo メソッド|<code>document.Undo()</code>]] や Ctrl+Z の操作が必要。 ==== Tabify/Untabify() メソッド ==== [[マクロリファレンス:Selection インターフェイス#Tabify メソッド|Selection.Tabify() メソッド]] / [[マクロリファレンス:Selection インターフェイス#Untabify メソッド|Selection.Untabify() メソッド]] は * 「選択範囲のテキスト」ではなく「選択範囲をふくむ論理行全体」が操作対象で、1文字以上の選択範囲が必要。 * 実行可能条件を満たしてから実行すると、「もとの選択範囲をふくむ論理行全体 (末尾改行をふくまない)」が範囲選択された状態で残る。 * 選択範囲内のテキストが「タブや2コ以上連続する半角空白をふくまない」ばあいなど、「タブ/空白」変換されなかったさいにも Undo 履歴や変更行のマーキングなどが残る。 : ''ref.'' [[#文字列操作が空振りしたときは undo 履歴に残さない|文字列操作が空振りしたときは undo 履歴に残さない]] : ''ref.'' 拙作「[[TAB/半角空白 トグル変換]]」マクロ ==== SelectLine() メソッド ==== [[マクロリファレンス:Selection インターフェイス#SelectLine メソッド|Selection.SelectLine() メソッド]] は * 「論理行」全体の選択のみで、「表示行」の選択には非対応。 : ※ エディタ内でのトリプルクリック操作に相当し、行末改行も選択範囲にふくまれる。 * 引数に <syntaxhighlight lang="javascript" inline>true</syntaxhighlight> を渡すと複数行選択が可能。 * トリプルクリックや行番号のクリック(またはドラッグ)で論理行全体が範囲選択された状態から実行すると、もとの選択範囲末尾改行のつぎの行まで範囲選択されてしまう。 : ''c.f.'' [[#複数行の論理行を範囲選択(末尾改行を含まない)|複数行の論理行を範囲選択(末尾改行を含まない)]]
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
利用者ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク