「貼付け実行後のカーソル位置を貼付け文字列の先頭にする」の版間の差分

提供:MeryWiki
ナビゲーションに移動 検索に移動
(ページの作成:「貼付け実行後のカーソル位置は通常、貼付け文字列の末尾になります。<br> このマクロで貼付けた場合は、貼付け後のカーソル...」)
 
(sukemaru 版)
2行目: 2行目:
このマクロで貼付けた場合は、貼付け後のカーソル位置が貼付け文字列の先頭になります。
このマクロで貼付けた場合は、貼付け後のカーソル位置が貼付け文字列の先頭になります。


= yuko 版 =
<source lang="javascript">
<source lang="javascript">
with (document.selection) {
with (document.selection) {
24行目: 25行目:
   }
   }
}
}
</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>
</source>

2018年11月14日 (水) 20:14時点における版

貼付け実行後のカーソル位置は通常、貼付け文字列の末尾になります。
このマクロで貼付けた場合は、貼付け後のカーソル位置が貼付け文字列の先頭になります。

yuko 版

with (document.selection) {
  // カーソル位置を保存
  var x = GetActivePointX(mePosView);
  var y = GetActivePointY(mePosView);
  // 選択開始位置を保存
  var ax = GetTopPointX(mePosView);
  var ay = GetTopPointY(mePosView);
  // 選択終了位置を保存
  var bx = GetBottomPointX(mePosView);
  var by = GetBottomPointY(mePosView);

  // 貼付け
  Paste();
  
  // カーソル位置を復元
  SetActivePoint(mePosView, x, y, false);
  // 範囲選択時には最左上の位置に復元
  if (x == bx && y == by) {
    SetActivePoint(mePosView, ax, ay, false);
  }
}

sukemaru 版

yuko 版と機能に違いはありません。

#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 );
スポンサーリンク