!!スペースやタブで作った似非インデントをインデントに置き換えるマクロ
!!一太郎付属のマクロを元に作成しましたが原型をなくしすぎて
!!元がどれか分からなくなりました
ErrorBreakMode(0, 0, 0)
DisplayMode(0)
do
JumpEnd()
!!文章の最後に飛んでその位置を取得
%endposPage = GetPage()
%endposRow = GetRow()
%endposColumn = GetColumn() -1
JumpStart()
!!先頭から探す
do
%c_point("現在ページ") = GetPage()
%c_point("現在行") = GetRow()
%c_point("現在桁") = GetColumn()
%currentIdt = GetIndent()
%charType = GetCharacterType()
%setIdtTo = 0
%st = 0
%currentIdtWid = 0
if %currentIdt = nil then
%currentIdtWid = 0
else
%currentIdtWid = ArrayValue(GetIndent(),"行頭")
end if
!!半角スペースだったら1C
if %charType = 20 then
%setIdtTo = %currentIdtWid +1
!!タブだったら4C
else if %charType = 9 then
%setIdtTo = %currentIdtWid +4
else if %charType = 21 then
%currentIdtWid = 0
%st = 0
NextLine()
continue do
else
%setIdtTo = 0
end if
if %setIdtTo > 0 then
Delete()
!!空白用だった文字は消して
Indent(1,%setIdtTo,0,0,0,101)
%setIdtTo = 0
%st = 1
!!インデントを上げる
!!101はカラム指定
end if
if %endposPage = %c_point("現在ページ") \\
and %endposRow <= %c_point("現在行") then
exit do
end if
if %charType = 10 or %charType = 12 then
!!改行もしくは改ページだった場合次行へ
%currentIdtWid = 0
%st = 0
NextLine()
continue do
else if %st = 1 then
%st = 0
!!文字をDeleteした後はカーソル動かさない
else
!!そうでなければカーソルを右へ
CursorRight()
end if
loop
exit do
loop
!!終了メッセージ
Message("インデントへの置き換えが終了しました", 0)
end
一太郎には半角スペース3つ以上を入れて書き始めた段落をスペースの分だけインデントとして設定して置き換えてくれる機能があるのですが、この機能を事後的に文章全体へ適応する方法が分からなかったのでマクロを書きました。動作保証はしませんがお役に立ちそうであればご自由にお使いください。Escキー→Z→Xから新規作成アンドコピペで使えるはずです。
【後書き】
いやそんなもの流石に本体機能で持ってるでしょと思いながらしばらく探しましたがみあたらず、回数制限のある電話サポートへかけてみるもつながらず、他に誰かマクロ作ってるんじゃないの?とググってみるも探し当てられず、3、4時間かけてこんなのを書きました。
作業のメモなんかを「.txt」のファイルとして書いて残している人は多いと思うんですよね。そして階層構造にしたい時は半角スペースなりタブなりでインデントもどきを作るのもよくあるケースかと。まかり間違っても作業メモを一太郎で書いて段落設定してjtd保存はせんと思うのです。
しかしですねえ、作業メモ程度のつもりだったのをマニュアルなり議事録なりちょっとしたPDFにして出そうと思うとやっぱり一太郎使うと見たまんまを綺麗に出せるし、校正もかけられるし一太郎に持ち込みたくはなるのです。もし今の一太郎に今回作ったこの機能が無いのならジャストシステム様には是非実装をご一考いただきたいところです。
では。