Macro/投稿/85

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F85


Top > Macro > 投稿 > 85

カーソル位置から指定行までを選択

  • ページ: Macro/投稿
  • 作者: すい?
  • カテゴリー: ppa
  • 投稿日: 2006-06-26 (月) 23:45:04

メッセージ

ブックマークを使用する方法 data:5295

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
// 実行には PPA.DLL が必須です。
// マクロファイルの拡張子は .PPA でなくてはなりません。
 
// 現在のカーソル位置から指定行までを選択する。
// このマクロを使用すると、編集中ファイルの全ブックマークが解除されるので注意!!
 
var
        cx,cy:Integer;
        ty:Integer;
begin
        // 現在位置を cx,cy に記憶しておく。
        cx := StrToInt( S_ExpandParameter( '$x' ) );        // 実行開始時の列
        cy := StrToInt( S_ExpandParameter( '$y' ) );        // 実行開始時の行
 
        // 行番号を入力させる
        ty := StrToInt( InputBox( '行番号を入力' , '何行目までを選択しますか?' , '' ) );
        if( ty = 0 ) then        Exit;        // 何も入力されなかったら、ここでマクロ中断。
 
        S_BookmarkReset(0);        // ブックマークの全解除
        S_Jump(ty,0);                // 目的行まで飛ぶ
        S_BookmarkSet(0);        // ブックマーク設定・解除
 
        // カーソル位置を cx,cy へ戻す。
        S_Jump(cy,0);
        while ( StrToInt( S_ExpandParameter( '$x' ) ) < cx ) do        S_Right(0);        // カーソル右移動
 
        S_BeginSelect(0);        // 範囲選択開始
 
        if( cy < ty ) then
                begin        // ↓方向に選択する場合
                        S_BookmarkNext(0);        // 次のブックマークへ
                        S_BookmarkReset(0);        // ブックマークの全解除
                        S_Left(0);                        // カーソル左移動
                        S_Right(0);                        // カーソル右移動
                        S_Down(0);                        // カーソル下移動
                end
        else
                begin        // ↑方向に選択する場合
                        S_BookmarkPrev(0);        // 前のブックマークへ
                        S_BookmarkReset(0);        // ブックマークの全解除
                end
        ;
end;

移動履歴を使用する方法 data:5308

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
// 実行には PPA.DLL が必須です。
// マクロファイルの拡張子は .PPA でなくてはなりません。
 
// 現在のカーソル位置から指定行までを選択する。
 
var
        cy:Integer;        // マクロ開始時の行(選択開始行)を記憶しておくための整数数値変数を用意する
        ty:Integer;        // 選択終了行を記憶しておくための整数数値変数を用意する
begin
        cy := StrToInt( S_ExpandParameter( '$y' ) );        // 現在行を cy に記憶しておく。
 
        // 行番号を入力させる
        ty := StrToInt( InputBox( '行番号を入力' , '何行目までを選択しますか?' , '' ) );
        if( ty = 0 ) then        Exit;        // 何も入力されなかったら、ここでマクロ中断。
 
        S_Jump(ty,0);                // 目的行まで飛ぶ - ジャンプ前の位置が自動的に移動履歴に登録されている
        S_MoveHistPrev(0);        // 移動履歴: 前へ - カーソルを S_Jump 実行前位置へ戻す
        S_BeginSelect(0);        // 範囲選択開始
        S_MoveHistNext(0);        // 移動履歴: 次へ - カーソルを S_Jump 実行後位置へ移動
 
        if( cy < ty ) then
                begin        // ( 選択開始行cy < 指定行ty ) つまり ↓方向に選択する場合
                        S_Down(0);        // カーソル下移動
                end
        else
                begin        // ↑方向に選択する場合
                        S_Right(0);        // カーソル右移動 - 移動履歴で移動後、カーソル移動しないと選択状態にならないらしい。
                        S_Left(0);        // カーソル左移動   なので無駄に → 行って ← に戻る。
                end
        ;
end;


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2006-08-28 (月) 00:11:28 (4253d)