テキスト変換で用いているマクロ【隠し文字編】

那須工場 テキスト変換課のHです。

 前回はテキスト変換の基本的な説明で終わったので,今回から応用編として普段使用しているマクロやスクリプト置換について書いていこうと思います。
 今回はまずマクロについて取り上げていくのですが,マクロとはWordやExcelに搭載されているVBA(Visual Basic for Applications)の事を指しています。

 自分にとってマクロとは,元々先輩が作ったものを使用する程度で自作するという感覚はあまりありませんでしたが,ある時お客さん作成のWordデータ内に隠し文字が入っていて,それが立て続けに出てきたことから対策を練ることとなり,後工程と相談した結果テキスト変換部署で対処する事にしよう!と決まったことがマクロを自作していくきっかけとなりました。

 今回はマクロを作るきっかけとなった,隠し文字ついて取り上げていきたいと思います。
 そもそも隠し文字とはWord文章内の設定のひとつで,修正前の文章やメモ書きといった使わない文字だけど,データ内には残しておきたい文字として,入っている事が多いかと思います。

 Wordを作成する際にはとても便利な機能なのですが,基本的に原稿では見えていない上に,テキストへ変換するとそのまま書き出されてしまうので,我々の作業においては少々厄介な存在となってしまっています。

 対処法としては,VBAの「AutoOpen」というマクロを使えば指定したマクロをWordを開いた時点で実行させることができるので,隠し文字を検索・置換するマクロを作って,AutoOpenでデータ毎に実行させようとなりました。

 メインの文章以外にヘッダーやフッター,文字枠など全ての場所に検索をかけなくてはいけないので,当時はかなり手こずりました。。
 ですがなんとか先輩とネットの力を借りて,Word上全ての場所で検索置換ができるマクロが完成したのですが,すぐに新たな問題にぶつかることになりました。。

検索置換をかけられるが,そもそもWord上で隠し文字を削除してはいけない!

 という問題です。削除してはいけないというのは,物理的に削除できない訳ではなく,データ上で文字を削除したりすると内容が変わる恐れがあるためWord上では削除しない方がよいという意味です。
 前回の勉強部屋ではExcelを例に挙げていましたが,今回はWordの隠し文字を例にして図解を作成したのでご覧下さい。


下記例は①~③の下に●の箇条書きがあるという形で,その中に隠し文字ならぬ隠し改行が入っているというパターンです。

原稿での見え方
undefined
↑原稿では③の箇条書きが「。」で繋がっている文章に見えています。

データでの見え方
undefined
↑一方データでは「。」の後ろに隠し文字に設定されている改行が入っており,さらに改行が入る事によって本来③の文章だったものが,●の箇条書き設定の文章として入ってしまっています。

このままでは内容が変わってしまうため,隠し文字設定の改行を削除しなくてはいけませんが,この作業をWord上でやると
undefined
↑③の箇条書きが●の箇条書きに吸収され,③→●の箇条書きとなってしまっています。

このような現象が起きるため,Word上では目印を入れるだけにします。
undefined
隠し文字設定の改行の前に【隠し段】と入れたままテキストに変換。
テキストに変換後,テキスト上でのスクリプト置換にて

【隠し段】\n → 削除
※\nは改行の意味

という置換をする。そうすると最終的に

③ 三つ目の例文。* 例文例文例文。
※テキスト上で箇条書きの記号は*に置き換えられる

といった形で書き出されることになります。
結果として●の箇条書きは*として間に残ってしまいますが,Word上で消えてしまう③の箇条書きは活きるので,テキストでの作業が好ましいと言えます。


 少々強引な例でしたが(笑),以上がマクロを使った隠し文字への対策法になります。
 次回以降は隠し文字以外のマクロについても書いていこうと思っていますので,よろしくお願いします。