マクロ「ブックマークジャンプ」

「一太郎」用。

マクロに入ると、1 文字入力になります。その文字のブックマーク名にジャンプします。

文書の先頭ジャンプ、文書の最後ジャンプ等も可能。

!!処理:各種ジャンプ
!!編集:2003.12.21 by T.A.
!!説明:ブックマークにジャンプ。
CommandGuidance("ジャンプ:^d、^D、^e、^m、^q、^s、^w。ジャンプ=0~9、a~z、A~Z。他=中止")
$key=getkey(2,1)
!!ErrorBreakMode(0,0,1)
select case $key
case "{ESC}"
case "^s"
	文書頭( )
case "^e"
	文書末( )
case "^b"
	前ページ( )
case "^n"
	次ページ( )
case "^w"
rem	次文書(1)!!順方向
	次のウインドウへ()
case "^q"
	分割画面ジャンプ(1)
case "0" to "9","a" to "z","A" to "Z"
	ブックマークへジャンプ()
case "^m"
	マークジャンプ?( )
case "^d"
	ブックマークを削除()
case "~^d"
	ブックマークを削除2()
end select
!!エラー表示
end

sub ブックマークへジャンプ
 CommandGuidance("ブックマックへジャンプ:")
 Guidance($Key)
 try
 	ブックマークジャンプ($key)
 exception
  case "SearchError"
 	%EC=ErrorCode( )
 	select case %EC
 	 case 201
 	 	Guidance("中止します。")
 	 case 2050
 	 	set %Error=MacroEngine.LastError
 	 	メッセージ(%Error.Message,0)
 	end select
 	Guidance($Key)
 end try
end sub

sub ブックマークを削除
!!note:GetMark()によりカーソル位置のマーク番号を得ても、そのマーク名を得る方法がない。GetBookmarkList(2)によりマーク・リストを得てもこのリスト番号とマーク番号とは一致しない。
 CommandGuidance("カーソル位置のブックマークの削除:")
 %CSRBMN=GetMark()	!!=カーソル位置のマーク番号
 if %CSRBMN=0 then
 	メッセージ("カーソル位置にブックマークが有りません。",0)
 	exit sub
 end if
 CancelMark(%CSRBMN)	!!マーク削除¶debug
 メッセージ("カーソル位置のブックマークを削除しました。",0)
end sub

sub ブックマークを削除2	!!直接マークを指定して削除
 CommandGuidance("指定ブックマークの削除:")
!! %BMNam=文字入力 (.タイトル="削除するブックマーク名の指定",.長さ=20,.文字数=20,.初期値="")	!!=マーク名
 %BMNam=InputString("削除するブックマーク名の指定",20,20)	!!=マーク名
!! %BMNam=InputBox("ブックマーク名を指定して下さい。","ブックマークの削除")
 if %BMNam=nil or %BMNam="" then
 	メッセージ("中断します。",0)
 	exit sub
 end if
 Guidance("削除:" & %BMNam)
 CancelBookMark(%BMNam)	!!マーク削除
 メッセージ("ブックマーク「" & %BMNam &"」を削除しました。",0)
end sub

sub 次のウインドウへ
%dh=Documents.Count!!ドキュメント数
for %i=1 to %dh!!全ドキュメント名を拾う
	%全名(%i)=Documents.Item(%i)
next
%現名=Documents.Current	!!現在のドキュメント名
%fn=FindElement(%現名,%全名)
if %fn<%dh then	!!次のドキュメントへ
	%dn=%fn+1
else
	%dn=1
end if
end sub

sub エラー表示
 %err=ErrorCode( )
 select case %err
  case 0
   Guidance("ブックマークジャンプ:" & $key)
   stop
  case 201
   Guidance(%err & ":ESC")
  case 2050
   Guidance(%err & ":登録されていません")
  case else
   Guidance("ERR:" & %err)
 end select
end sub

キー入力
キー入力 動作
[Ctrl]+[s] 文書の頭
[Ctrl]+[e] 文書の末
[Ctrl]+[b] 前ページ
[Ctrl]+[n] 次ページ
[Ctrl]+[w] 次のウインドウへ
[Ctrl]+[q] 分割画面ジャンプ
[0]~[9]、[a]~[z]、[A]~[Z] ブックマーク「0」~「9」、「a」~「z」、「A」~「Z」へジャンプ
(処理中止)