2016年03月02日

JeditXでテキストに行番号を発生させる
(JavaScript(ESTK)によるサンプルデータを追加しました)

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2017.4.21に、JavaScript(ESTK)で処理するサンプルデータを追加しました。この方法であれば1000行以上でも問題なく、しかも高速に処理できます。


ある仕事で、JeditX上のテキストの各行に行番号を発生させる必要が生じました(下図左の状態を下図右の状態にします)。

0302b.png

これまでの仕事ではExcelを使って通し番号を発生させていましたが、作業が面倒なだけでなくJeditX・Excel間のコピー&ペースト時にミスが生じる可能性もありJeditXで作業を完結させたいと考えていました。今回はJeditXの「複数一括置換」機能により行番号を発生させる方法を考えました。


ご覧のとおり、ボタンをクリックしただけで最大999行までに行番号を発生させることができます。興味のある方はサンプルの複数一括置換用ファイルをお試しください。
※もっといいツールをご存知だったり、もっとシンプルな正規表現の書き方をご存知の方がいらっしゃいましたら、ぜひご教示ください。よろしくお願いします。

※2017.4.21に、JavaScript(ESTK)で処理するサンプルデータを追加しました。1000行以上でも問題なく、しかも高速に処理できます。


サンプルデータはこちら《minimum20160302.zip》です。

【2016.3.3追記】複数一括置換用ファイルを再度アップしました。置換設定を21行→13行に書き換えたものです。

2016.3.3版のサンプルデータはこちら《minimum20160303c.zip》です。

【2016.3.8追記】複数一括置換用ファイルを再度アップしました。テキストにタブが含まれていても処理できるよう修正しました。

2016.3.8版のサンプルデータはこちら《minimum20160308a.zip》です。

【2016.8.7追記】複数一括置換用ファイルを再度アップしました。偶数番号、奇数番号を発生させる置換テーブルを追加しました。

2016.8.7版のサンプルデータはこちら《minimum20160807b.zip》です。

【2017.4.21追記】こちらはJavaScript(ESTK)で処理するサンプルデータです。

サンプルデータはこちら《lineNum_2017_0419.zip》です。
posted by 照山裕爾 at 21:19| Comment(4) | TrackBack(0) | テキストデータ・Word | このブログの読者になる | 更新情報をチェックする

2015年09月30日

セル内改行を「〓」に置換する

DTP作業者にとっての難易度 ★☆☆☆☆(1)

※2016.7.11にサンプルデータを追加しました(改行コードを〓に置換するマクロを作成)。

※2017.6.15にサンプルデータを更新しました(改行コードを〓に置換するマクロを改良)。


InDesignのデータ結合機能を使用する際、Excelデータにセル内改行が残っていると不具合が生じます。
しかしMac版のExcelでは、通常の検索/置換機能を使ってセル内改行を他の文字(たとえば「〓」)に置換したり削除したりすることはできません。
そこで、これまで私は「LibreOffice」というソフトを使ってセル内改行を〓などに置換してきました。

※LibreOfficeを使う方法については当ブログの「定形フォーマットが並ぶレイアウトを作成する(データ結合)」でご紹介しています。


ただ、環境によってはMac版Excelだけで完結する必要もあるだろうと思い、今回はその方法を考えることにしました。

手順としては、
●データを入力したシートとは別に空白シートを用意する(同ブック内)。
●空白シートのA1セルに「=SUBSTITUTE(Sheet1!A1,CHAR(13),"〓")」と入力する。
●空白シートのA1セルをコピーし、空白シートの他セルにペーストする。
というものです。では動画をご覧ください。

※SUBSTITUTE関数は、あるセル内の特定の文字を別の文字に置き換える関数です。

※「Sheet1!A1」は「Sheet1!」というシートの「A1」セルを示しています(シート名が違う場合はこの部分を書き換えてください)。

※「CHAR(13)」はセル内改行のことです。

※「〓」は置換文字です。必要に応じて書き換えてください。



今回の方法については、以下のサイトを参考にしました。
http://web-memo.co/mac/excel/excel-mac-br-replace/

サンプルデータはこちら《minimum_2015_0930.zip》です。

【2015.9.30追記】
※どうやらCHAR(13)はCRで、CHAR(10)はLFのようです。念のため両方とも対応するよう「=SUBSTITUTE(SUBSTITUTE(Sheet1!A1,CHAR(13),"〓"),CHAR(10),"〓")」とし、データを更新しました。
2015.9.30更新サンプルデータはこちら《minimum_2015_0930b.zip》です。

【2016.7.11追記】
※改行コードを検索し、〓に置換するマクロを作成しました。
2016.7.11追加サンプルデータはこちら《minimum20160711.zip》です。

【2017.6.16追記】
※改行コードを〓に置換するExcelのマクロを更新しました。
2016.7.11追加サンプルデータはこちら《minimum20170615.zip》です。
posted by 照山裕爾 at 17:05| Comment(2) | TrackBack(0) | テキストデータ・Word | このブログの読者になる | 更新情報をチェックする

2013年09月13日

複数の置換を一気に実行する

DTP作業者にとっての難易度 ★★★☆☆(3)

編集者の方からテキストデータを頂戴した後、用語統一のために「又は」を「または」に置換、「及び」を「および」に置換、「○カ月」を「○ヶ月」に置換……など数多くの置換を実行するケースがあります。私が経験した仕事では100パターン以上の置換が必要になることもありました。

このような時にWordやInDesignの検索/置換を普通に使用していたのでは、いくら時間があっても足りません。今回は、この作業を省力化する方法について書きたいと思います。

※一括処理は作業効率が良い反面、不要な箇所まで置換してしまうおそれがあります。また、レイアウト体裁を整えた後に一括処理をおこなうとレイアウトが崩れる可能性もあります。作業の早い段階で実行しましょう。


Microsoft Word上で一括処理するツール


「WORD文書一括処理ツール」((有)ワールドワード)はVectorなどで入手できるシェアウェアです。私は何年か前に入手した旧バージョン(ver1.7)をMacOSX環境で使用しています。

※最新バージョンは「ver3」ですが残念ながらWindows環境だけで動作するようです。


このツールでは表の左側に検索文字列、右に置換文字列を入力してマクロを実行することで、複数の置換を一気に処理することができます。

※動画は私の使用しているバージョンです。現行バージョンは操作が更に簡単になっているようです。



注目すべきポイントは置換後の文字に蛍光ペンもしくは赤文字を適用できること。必要ない箇所まで置換されていないかどうか確認することができるのです。この後、蛍光ペンや赤文字が適用された文字をWord上で検索して任意の文字スタイルを適用すれば、InDesignにも文字スタイルとして反映させることができます。

※この作業については以前《選択した文字の書式を簡単に指定……文字スタイル》でご紹介しています。


InDesign上で複数の置換を一気に実行する


次に、テキストをInDesignに読み込んだ上で置換を実行すると方法をご紹介します。

「run_Queries 0.3」を使用する


市川せうぞーさんがお作りになった「run_Queries 0.3」(詳しくはこちら)を使っているDTP作業者は多いのではないでしょうか。これは複数のクエリ(検索/置換の設定)を連続実行するJavaScriptで、たいへん便利です。置換の件数が多くなると必要なクエリを用意するのが少し大変かもしれませんが動作はとても軽快です。


Excelと簡単なJavaScriptで複数の検索を実行する


置換項目数が多くなってくると内容の管理が面倒になります。そこでExcelで作った検索/置換リストを使ってInDesignで一括置換できないか考えてみました。つたないJavaScriptですが、よろしければご使用ください。

このJavaScriptは3つのファイルで構成されています(同じ階層に置く必要があります)。「chikan_0912b.jsx」は本体ファイル。「list_kihon.jsx」「list_option.jsx」は、いずれも検索/置換内容を書き込んだリストのファイルです。内容を変更したい場合はExcelファイルを書き換え、「以下をコピーしてJavaScriptにペースト」と表示されている列の内容をJavaScriptファイルに貼り付けてください。

InDesign上でこのJavaScriptを実行すると、置換された文字には「done」という文字スタイル(文字色は赤)が適用されます(用意したテンプレートを使用することが前提です)。ここからリッチテキストを書き出し、あらためてWordで開いてみると「done」が適用された状態が保たれています。編集者の方に「不要な置換が実行されていないか」などを確認していただくこともできるわけです。

今回ご紹介した方法以外にも便利なツールがあるかもしれません。たとえば「検索置換ラクダX」というMac用のフリーソフトも、自分で作成したリストに従って複数の置換を一括処理することができます。ただ、置換された箇所が後で判断できないため、私は今回のような目的では使用していません。何か良いツールをご存じの方がいらっしゃいましたら、ぜひお知らせください。
サンプルデータはこちら《0913minimum.zip》です(CS4以降)。

※MacOSX・InDesignCS4で動作を確認しましたが、他の環境(特にWindows)で正しく動くかどうか確認できておりません。あしからずご了承ください。

2016.11.25にアップした別ページ『JavaScriptで複数一括置換【改良版】』(ここをクリックすると別ウインドウで開きます)では、このJavaScriptの改良版をご紹介しています。Excelを使用しないため作業が簡単になりました。

2017.6.9にアップした別ページ『JavaScriptで複数一括置換【スタイル指定機能を追加】』(ここをクリックすると別ウインドウで開きます)では、さらに改良したものをご紹介しています。検索対象の段落スタイル・文字スタイル、置換時の文字スタイル、検索範囲をダイアログで簡単に設定できます。


(追記)

私が使っている「WORD文書一括処理ツール」の旧バージョン(v1.7)はMac版Word2004および2011では動作することを確認しています。しかしマクロに対応していないMac版Microsoft Word2008では動作しません。

(20130915追記)

テキストエディタ「Jedit X」に「複数一括置換」機能があることをご指摘いただき、試してみました。とても分かりやすく使いやすい機能です。検索/置換には正規表現を使うことができます。また、リストはテキストファイルとして保存・編集できます。

(20170317追記)

Jedit Xで複数一括置換をおこなった後、置換した部分に文字色をつける方法が分かりました。下のコメント欄をご覧ください(動画、サンプルファイルもあります)。

091501.png

(20170124追記)

InDesign上で複数置換を実行するJavaScriptの改良版を、2016年11月に『JavaScriptで複数一括置換【改良版】』(http://mottainaidtp.seesaa.net/article/444309094.html)でご紹介しています。併せてご覧ください。

(20170621追記)

InDesign上で複数置換を実行するJavaScriptの更なる改良版を『JavaScriptで複数一括置換【スタイル指定機能を追加】』(http://mottainaidtp.seesaa.net/article/450695777.html)でご紹介しています。併せてご覧ください。
posted by 照山裕爾 at 03:46| Comment(5) | TrackBack(0) | テキストデータ・Word | このブログの読者になる | 更新情報をチェックする