秀丸マクロ: スクロール位置を元に戻す

スクロール位置を元に戻す

現在のスクロール位置は screentopy, screenleftx で取得可能です。

そしてスクロール位置をもとに戻す場合は、 enabledraw文の引数としてスクロール位置を指定します。

プログラムの流れは次の通りです。

  • 現在のスクロール位置を取得
  • 画面の書き換えを禁止する
  • 何らかの処理
  • 画面の書き換え許可(スクロール位置を元に戻す)

コードは次のようになります。

// 現在のスクロール位置
#scroll_y = screentopy;
#scroll_x = screenleftx;

//画面の書き換え禁止
disabledraw;

//何らかの処理

// 画面の書き換え許可
enabledraw #scroll_y, #scroll_x;

スクロール位置とカーソル位置を戻す

スクロール位置だけでなく、 カーソル位置も戻す場合のサンプルプログラムです。

カーソルの位置も最初にキープしておき、 書き換え許可前に元の位置に戻します。


// カーソル位置を記憶
#num_x = x;
#num_y = y;

// 現在のスクロール位置
#scroll_y = screentopy;
#scroll_x = screenleftx;

//画面の書き換え禁止
disabledraw;

//何らかの処理


// カーソル位置を元の位置に
moveto #num_x, #num_y;

// 画面の書き換え許可
enabledraw #scroll_y, #scroll_x;