
【追記 '23/12/19】 こちらver1.2.5bで動きます。 「マクロ内で使ってるコードは1.2.3から修正してないしヘーキヘーキ」などと横着してすみませんでしたァ! ─-─-─-─-─-─-─-─-─-─-─-─-─-─-─- ◆全てのノードのフォントを変更する手段 全てのノードを一括(一瞬)で、となると “一度プレーンテキストにして既存フォントを覚え直させる” といった方法になるため、他の文字装飾が失われてしまいます。 なので、ちょっと処理時間はかかりますが 【各ノードのフォントを自動で変更していくマクロ(ver.1.2.5b)】を書きました。 マクロを調べてくださったのが個人的に嬉しかったのでコメント多めです(照) ※取り返しがつきにくい内容なので、確認ダイアログや制約を多めにしてあります。 冒頭のコメントアウトをご一読ください。 ─-─-─-─-─-─-─-─-─-─-─-─-─-─-─- //各ノードのフォントを自動で変更していくマクロ(ver.1.2.5b) //○1ノード目を開いている場合でのみ実行可能です //①キャレット位置のフォント名を取得します //②確認ダイアログを2回出します(フォント名/バックアップ状態) //③大体1秒2ノードくらいで処理を開始します // 終了時にメッセージ音とともに知らせしますので、別アプリなどで暇を潰してください var i,NoteOfCaret,NoteOfSelLen:integer; SetFont:string; begin if GetNodeAbsoluteIndex<>0 then//現在地のノード番号が0じゃない begin ShowMessage('当マクロは事故の防止を兼ね、1ノード目でのみ実行を開始します'); exit; end; SetFont:=EditorSelectedFont;//キャレット位置のフォント名を覚える case MessageDlg('【各ノードのフォントを自動で変更していくマクロ(ver.1.2.5b)】'+#10#10+'変更先のフォント名は「'+SetFont+'」でよろしいですか?',672) of//使用するボタン番号を記述 7:begin//[いいえ] ShowMessage('キャレット位置からフォント名を取得するため、'+#10+'最初は手動でフォント変更していただく必要があります。'+#10#10+'準備ができましたらもう一度マクロを実行してください。'); exit; end; 2:begin//[キャンセル]/Escキー/×ボタン ShowMessage('マクロを中止しました'); exit; end; end;//6:[はい]が残る if MessageDlg('各ノードを移動して「'+SetFont+'」に変更します。'+#10#10+'元へ戻すにはファイルの編集状態を破棄する必要があります。'+#10+'バックアップ等の状態は万全ですか?',12)=2 then//選択肢が少ない場合はif文でもよい begin//2:[キャンセル]/Escキー/×ボタン ShowMessage('マクロを中止しました'); exit; end;//1:[OK]が残る for i:=0 to GetNodesCount-1 do//1ノード目から最終ノードまで繰り返す begin NoteOfCaret:=EditorSelStart;//キャレット位置と選択状態を覚えておく NoteOfSelLen:=EditorSelLength; EditorSelectAll;//全選択 EditorSelectedFont:=SetFont;//フォント名を変更 EditorSelStart:=NoteOfCaret;//キャレット位置と選択状態を元に戻す EditorSelLength:=NoteOfSelLen; if i=GetNodesCount-1 then Break;//最終ノードなら終了 ActionExec('ChildNodeFocusAction');//子ノードへ移動(※ActionExecは非公式マクロです) if GetNodeAbsoluteIndex=i then ActionExec('ActionNextFocus');//子ノードが無ければ下へ移動 while GetNodeAbsoluteIndex<=i do//次のノードを見つけるまで繰り返す begin ActionExec('ParentNodeFocusAction');//親ノードへ移動 ActionExec('ActionNextFocus');//下へ移動 end; end; MessageBeep(1);//Windows設定サウンド「情報」 ShowMessage('全てのノードをフォント「'+SetFont+'」に変更しました。'+#10+'保存の前に念のためご確認ください。'+#10#10+'設定>ツリー>動作「ツリービューでホイールスクロールした時ノードを切り替える」をONにするとちょっと楽ができます。'); exit; end;
スポンサーリンク
『NanaTerry』 - アウトラインプロセッサさんになんでも質問しよう!
質問
スタンプ
利用できるスタンプはありません。
スポンサーリンク
過去に答えた質問
スポンサーリンク