DTP駆け込み寺

No.20658へ返信

記事投稿フォーム
補助
送信

[ 返信 ]

Re^2: 表に対して縦方向への流し込みスクリプト

> リンク先の元のスクリプトは目を通しました。
> 大元のAppleScriptを書かれたのはせうぞーさんですが、
> それをJSで書かれたのは三島梅花藻さんですね。

失礼しました、三島梅花藻さんお世話になります。

指摘にあった通り元のスクリプトの動きを調べる事から始めました。
流し込む時【try】の動きを変更するだけはだめなんですね…

> ・どこまでやってみたのか

現在、問題箇所は分岐の中であると知って編集中です
新しく作ったテキストフレーム内の【改行】を無くして【タブ】で区切るという変換が行われているという認識に変わったのですが、ここの【タブ】で区切っている部分を【改行】に変えてみたのですが、変わらず行方向へ流し込みとなってしまいます。

txtfrmObj.remove();
以前の記述を変更してクリップボード内のテキストを改行にする試み。

} else if (clipstr != ""){
 //新設テキストフレーム内文字が表組みでない時!
var tmparray = clipstr.split(CR);
 //新設テキストフレーム内文字を改行で区切る
for (var i=0; i < tmparray.length; i++)
 //新設テキストフレーム内文字の回数繰り返す
clipAry = clipAry.concat(tmparray[i].split(CR));
 //改行で区切ったものを改行で区切る
}

splitでの分割を(TAB)から(CR)に変えてしまえば良いものかと思いましたが、(TAB)(CR)を入れ替えるだけでは意味がないんですね…
【タブ】で区切るから行方向への流し込みになるのだとしたら、
列方向に当たる記号があるのか…
それ以前に選択した表の列ごとのセル数を数えた方が良いのか…

> ・動けばあとはどうでもいいのか、ちゃんとしたのを書けるようになりたいのか

InDesignのJavaScriptは学び始めたばかりなので、ちゃんと書ける事を第一目標としています。これが動くようになった後は溢れた文字があれば長体をかけるなど、アレンジを加えて使っていくつもりです。

switchの宣言が入れ替わっていたのは書き直したからですね……隅々までの添削ありがとうございます。[0]への指摘を踏まえてsplitなどの解釈から初めてみます。
参考書などを切り貼りするだけでは初歩的なミスが多いのだと痛感しました。もう少し上記の箇所の試行錯誤を重ねながら正解を見つけていこうと思います!

現状は経過報告として…。また行き詰まった時には相談させていただくと思いますが、そのときはなにとぞよろしくおねがいします。

[20658] 双葉マークP (2021/10/27 Wed 17:11)