■ありそうでなかった、使ったら手放せない…これぞ「道具」の真骨頂!   
(クリックで動きます)
タイトルなし

おつかれさまです。@gorolibです。

一般的に「何かと何かを入れ替える」場合、それらとは別の入れ物を用意する必要があります。

ぱ、ぱーどぅん?

んーと、例えば金魚とメダカの水槽を入れ替える場合。

金魚をいきなりメダカの水槽に入れたら、まざっちゃうわお水はあふれちゃうわで、砂場であそんでる幼稚園児でもそんなことはしませんね。

入れ替えには中間のバケツが必要です。

金魚と水槽の水はいったんそのバケツに移し、金魚の水槽はからっぽにして、メダカの水槽を移したあと、さいごにバケツから金魚を移すことになります。

これってプログラミングでもよく出る話で、そのバケツのことをテンポラリ(一時的)などと呼んだりします。

前置きがいつもどおり長いですね(笑)

今回作ったスクリプトは文字の内容だけを入れ替えるものです。
(こういうの)
タイトルなし


■入れ替えバケツはどんなにうまくやっても必要


この入れ替えバケツ、どんなにうまくやっても必ず必要です。たとえば今回のスクリプトの仕様で言えば、入れ替える前にどこかにとっておく必要があります。

属性が違うとすれば、プレーンテキストとしてテキストエディタなどに貼り付けなきゃならない。

しかもイラストレーターで文字を扱うときの鬼門、

(1)文字入力スピード(入力後の反応)がおそい
(2)かな入力モードで文字ツール(ショートカットT)に持ち替えようとして失敗する
(3)かな入力モードで選択ツール(ショートカットV)に持ち替えようとして失敗する
(4)文字ツールのまま(テキストカーソルがアクティブのまま)、ドキュメントを保存しようとする(コントロール+S)と、テキストに「s」と追加されてしまう

が待ち受けているわけです。


スクリプトでやっちゃいましょう。もちろんスクリプトでやったって「バケツ」は必要なんですが、見えないバケツでやります。具体的にはプログラムの中の変数です(後述します)。


■今回のスクリプト情報

(クリックで動きます)
タイトルなし


<スクリプトファイル名>
G196_RepContentsEach.jsx


<使い方>
(1)内容を入れ替えたいふたつの文字オブジェクトを選択します。
(2)このスクリプトを起動します。


<仕様>
(1)文字オブジェクトの選択は2つだけです。それ以外では起動しません。
(2)先頭文字の属性で上書きしますので、文字途中の属性は無視されます。
→ハイライト選択してプレーンテキストをペーストするのと同じです。
(3)エリア文字でもできますが、高さ調整などは行っておりません。


※カスタマイズのキモっ!は今回ありません。


お役に立てれば幸いです!ではでは出羽の海。


■ダウンロードはこちらから



https://note.mu/gorolib/n/nb54507c4eb3b