Illustrator10のスクリプトについての質問です。


選択しているテキストボックスの
改行とスペースを削除するスクリプトってありますでしょうか?

InDesign CS3向けでは、
下記のサイト様で公開されていました。
http://www.seuzo.jp/st/scripts_InDesignCS3/index.html
delete_return 0.1

コレのIllustrator用というイメージです。

どうぞよろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/03/04 23:55:22
  • 終了:2010/03/10 23:41:19

ベストアンサー

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912010/03/05 13:13:11

ポイント650pt

こんな感じのことでしょうか。

/*------------------------------------------------------
選択したテキストから、改行・スペースを除去
------------------------------------------------------*/
myReplace();

function myReplace() {
    var aiVersion = parseInt( version.slice(0,2) );
    if(  aiVersion < 10 ) {
        alert("Version 10 以上 で実行してください。" + aiVersion );
        return;
    }
    var selectedObj = activeDocument.selection ;
    if( selectedObj.length == 0 )
    {
        alert("処理をするテキストを選択してから実行してください。");
        return;
    }

    for( i=0; i<selectedObj.length; i++ )
    {
        if( selectedObj[i] instanceof TextFrame   ) { // CS 版
//      if( selectedObj[i] instanceof TextArtItem ) { // 10 版
            selectedObj[i].contents = selectedObj[i].contents.replace( /[  \r\n]/g, '' );
        }
    }
}

下記が参考になるかと思います。

http://d-p.2-d.jp/ai-js/

id:ohtsu6

mookさま

WindowsのCSでは完璧でした。

いつもありがとうございます。

ちなみに下記2点を解消することはできますでしょうか?

1.Windowsの10では全角スペースだった場合、

 スペースが詰まりませんでした。

2.Macでは改行がされたままでした。

2010/03/05 23:58:29
  • id:GreenStar
    こんな感じでいけそうな気がする! 実物もってないから確認できん!! 誰か確認してくれ~~~!!
    (function(){
    var selObj = activeDocument.selection;
    var pat = "[ \n]"; // 肝心のこの部分が心配
    for(i = 0; i < selObj.length; i++) {
    var obj = obj[i];
    if(oobj.typename == "TextArtItem"){
    var reg = new RegExp(pat, "g");
    var selText = obj.contents;
    obj.contents = selText.replace(reg, "");
    }
    }
    })();
  • id:GreenStar
    私のコメント¥rと全角スペースが抜けてました! 誤字もありました! 勉強になります!! > id:Mookさん
    コメントで勝手なことしててゴメン! > id:ohtsu6さん
  • id:Mook
    あいにくと MAC と 10 の環境がないので、ネットで調べた範囲でのコメントですが、
    Macでは \ は バックスラッシュ(反対向きの/)として表示されているでしょうか。
    そうでない場合は文字コードで指定する必要があるかもしれません。
       selectedObj[i].contents = selectedObj[i].contents.replace( /[  ]/g, '' );
       selectedObj[i].contents = selectedObj[i].contents.split( String.fromCharCode( 10 ) ).join('');
       selectedObj[i].contents = selectedObj[i].contents.split( String.fromCharCode( 3 ) ).join(''); // 念のため
    でどうでしょうか。

    10について全角スペースが残るとのことですが、こちらはちょっと見当がつきません。
    上と同様、
       selectedObj[i].contents = selectedObj[i].contents.split(' ').join('');
    を追加してでダメでしょうか。

    これでダメだとしたら他の全角文字でも同じ状況でしょうか。
    そうでなければ、その部分が本当に全角スペースか確認できるでしょうか。

    上記でダメな場合は、コメントください。
  • id:ohtsu6
    mookさま
    一番最初の回答のもので、
    CS3ならばMAC&WINどちらでもできました。

    Winの10では下記内容を追加したらスペースが詰まりました。
    selectedObj[i].contents = selectedObj[i].contents.split( String.fromCharCode( 12288 ) ).join('');

    この度はどうもありがとうございました。
  • id:Mook
    10では全角は通常の処理ではできないようですね。
    ご自身で解決したにもかかわらず、多くのポイントをいただきありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません