インラインテキストフレームの置換

[9421]インラインテキストフレームの置換 投稿者:meg 投稿日:2018/03/28 14:47:31
【環境】Mac OS X Sierra10.12.6 / indesign CS4

お世話になっております。先日正規表現スタイルでのアイコン表記について質問させていただいたものです。無事解決のヒントをいただけたのですが(ありがとうございました!)、案件によって使用が難しい場合があり、別のアプローチを思案中です。アドビフォーラム等を参考にして、以下の形までにはなりました。


var myDocument = app.activeDocument;
var myOStyle = myDocument.objectStyles.item("iconNo");
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = "【\\d+?】";
app.findGrepPreferences.pointSize = "10q";
var myFinds = myDocument.findGrep();
l = myFinds.length;
while (l--) myFinds[l].insertionPoints[0].textFrames.add({geometricBounds: [32.5,35.5,30,30], appliedObjectStyle: myOStyle})


決まった文字列と数のテキストを、オブジェクトスタイルの設定されたテキストフレームに置換したいと考えていますが、以下で詰まっています。

○インラインテキストフレームにappliedCharacterStyle:"名前"を適用したいが、使用箇所が分からない
○検索された文字列をインラインテキストフレームに移動したいが、moveの使用法がよく分からない

何か有効なアドバイスや、ヒントをいただけると助かります。
どうぞよろしくお願いいたします。
[9423]Re: インラインテキストフレームの置換 投稿者:(z-) 投稿日:2018/03/29 12:57:09

実際動かしてみたわけではないのですが、コードを拝見して気になったところ

l = myFinds.length;
while (l--) myFinds[l].insertionPoints[0]〜

のところ、一発目からエラー起きませんか?

さておき、
>インラインテキストフレームにappliedCharacterStyle:"名前"を適用したい
>検索された文字列をインラインテキストフレームに移動したい

while (l) {
pepsi = myFinds[--l].insertionPoints[0].textFrames.add
({geometricBounds: [32.5,35.5,30,30], appliedObjectStyle: myOStyle});
pepsi.parent.applyCharacterStyle(myDocument.characterStyles.itemByName("hoge"));
myFinds[l].move(LocationOptions.AFTER, pepsi.insertionPoints[0]);
}
[9424]Re: インラインテキストフレームの置換 投稿者:meg 投稿日:2018/03/29 14:08:14
(z-)様

そのものズバリな内容をどうもありがとうございました!
理想的な結果を得ることができ、大変助かりました。これで業務の負担を軽減できそうです。

動作したとはいえ“一発目からエラー起きませんか”の部分が気になっているのですが、差し支えなければ表記が問題になりそうな箇所を教えていただけないでしょうか?
[9425]Re: インラインテキストフレームの置換 投稿者:(z-) 投稿日:2018/03/29 14:39:57
えーと、
 あ、勘違いでした! ごめんなさいw
変数 l の取り回しがちょっとわかっていませんでした。失礼おば
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア