|
|
| (3人の利用者による、間の6版が非表示) |
| 1行目: |
1行目: |
| 貼付け実行後のカーソル位置は通常、貼付け文字列の末尾になります。<br> | | == 概要 == |
| | 貼付け実行後のカーソル位置は通常、貼付け文字列の末尾になります。 |
| | |
| このマクロで貼付けた場合は、貼付け後のカーソル位置が貼付け文字列の先頭になります。 | | このマクロで貼付けた場合は、貼付け後のカーソル位置が貼付け文字列の先頭になります。 |
|
| |
|
| = yuko 版 = | | == ソースコード == |
| <source lang="javascript"> | | <syntaxhighlight lang="javascript" copy> |
| with (document.selection) {
| | var sel = document.selection; |
| // カーソル位置を保存
| | // カーソル位置 (選択開始位置) を保存 |
| var x = GetActivePointX(mePosView);
| | var x = sel.GetTopPointX(mePosView); |
| var y = GetActivePointY(mePosView);
| | var y = sel.GetTopPointY(mePosView); |
| // 選択開始位置を保存
| | // 貼付け |
| var ax = GetTopPointX(mePosView);
| | sel.Paste(); |
| var ay = GetTopPointY(mePosView);
| | // カーソル位置を復元 |
| // 選択終了位置を保存
| | sel.SetActivePoint(mePosView, x, y, false); |
| var bx = GetBottomPointX(mePosView);
| | </syntaxhighlight> |
| var by = GetBottomPointY(mePosView);
| |
| | |
| // 貼付け
| |
| Paste();
| |
|
| |
| // カーソル位置を復元
| |
| SetActivePoint(mePosView, x, y, false);
| |
| // 範囲選択時には最左上の位置に復元
| |
| if (x == bx && y == by) {
| |
| SetActivePoint(mePosView, ax, ay, false);
| |
| }
| |
| }
| |
| </source>
| |
| | |
| = sukemaru 版 =
| |
| yuko 版と機能に違いはありません。
| |
| <source lang="javascript">
| |
| #title = "貼り付けて先頭"
| |
| #tooltip = "カーソルを貼り付けた文字列の先頭へ"
| |
| // #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",120
| |
| | |
| var s = document.selection;
| |
| var sel = ( s.Text ) ? true : false; // 実行前の選択範囲の有無
| |
| var tx = s.GetTopPointX( mePosView ); // 選択範囲の先頭(左上)
| |
| var ty = s.GetTopPointY( mePosView );
| |
| s.Paste(); // 貼り付け
| |
| s.SetActivePoint( mePosView, tx, ty, sel ); // 貼り付けた文字列の先頭へ
| |
| | |
| // sel : "実行前に選択範囲があった場合は、貼り付けた文字列を範囲選択"
| |
| // ※"つねに範囲選択なし" にするなら sel → false
| |
| // ※"つねに範囲選択あり" にするなら sel → true
| |
| // ▼"つねに範囲選択あり & カーソルは末尾" にするなら▼
| |
| // s.SetAnchorPoint( mePosView, tx, ty );
| |
| </source> | |
貼付け実行後のカーソル位置は通常、貼付け文字列の末尾になります。
このマクロで貼付けた場合は、貼付け後のカーソル位置が貼付け文字列の先頭になります。
ソースコード[編集]
var sel = document.selection;
// カーソル位置 (選択開始位置) を保存
var x = sel.GetTopPointX(mePosView);
var y = sel.GetTopPointY(mePosView);
// 貼付け
sel.Paste();
// カーソル位置を復元
sel.SetActivePoint(mePosView, x, y, false);