【ワードマクロ】カーソルのある段落に蛍光ペンを付ける

私が仕事で使っているワードマクロをご紹介。
「マクロの記録」を使って作ったお行儀のよくないスクリプトですのでご容赦を。

このマクロは、カーソルのある段落を自動で範囲指定して蛍光ペンをつけるだけのマクロです。また、実行するたびに色が変わり、10色変化します。11回目に蛍光ペンなしに戻ります。(蛍光ペン色で字が潰れるのが嫌なので、10色に限定するようなことをやっています(笑))

Sub HighLight2Paragraph()
Dim ColorLoop As Integer
On Error Resume Next
Selection.MoveUp unit:=wdParagraph, Count:=1
Selection.MoveDown unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend

ColorLoop = Selection.Range.HighlightColorIndex - 1
If ColorLoop < 0 Then ColorLoop = 7
If ColorLoop = 2 Then ColorLoop = 14
If ColorLoop = 9 Then ColorLoop = 0
Selection.Range.HighlightColorIndex = ColorLoop
End Sub

私はショートカットキーへ登録して、翻訳チェックをしている時に目印付けの代わりに使っています。

嫌だ、行単位にしてくれ!という方は、以下のスクリプトを使ってくださいませ。

Sub HighLight2Line()
Dim ColorLoop As Integer
On Error Resume Next
Selection.HomeKey unit:=wdLine
Selection.EndKey unit:=wdLine, Extend:=wdExtend

ColorLoop = Selection.Range.HighlightColorIndex - 1
If ColorLoop < 0 Then ColorLoop = 7
If ColorLoop = 2 Then ColorLoop = 14
If ColorLoop = 9 Then ColorLoop = 0
Selection.Range.HighlightColorIndex = ColorLoop
End Sub

【ワイルドカード】特定の見出し行の後に空白行が入っているかをチェックする

スタイルガイドに「特定の見出し行の後に、必ず空白行を入れること」となっているとします。このルールが守られていないケースを検索するワイルドカードの記述例を以下に示します。

例えば、英文で「TITLE OF THE INVENTION」の後に空白行が入っていないものを検索するには、「検索する文字列」で以下のように記述します。

TITLE OF THE INVENTION^13[!^13]

解説)
見出し行の後に空白行がある状態とは、見出し文字列の後ろに改行が2つ連続していることになります。つまり、2つ目が改行でないものを検索すれば良いことになります。

改行を検索する際は ^13 を使いますので、ここでは分かり易くするために、改行を ^13 で表します。

(正)
TITLE OF THE INVENTION^13
^13
A quick brown fox jumps over the lazy dog. The fox has wings …

(誤)
TITLE OF THE INVENTION^13
A quick brown fox jumps over the lazy dog. The fox has wings…

2つ目が改行ではない、即ち2つ目に ^13 がないものを検索すれば良いことになります。「改行でない」は「^13ではない」と記述すること(^13を否定してやること)で表すことができますので、否定の際に使用する「!」を先頭に入れて、 [!^13] とすればよいわけです。

ここでは角括弧[ ]は必須です。^13!^13 では正しく検索されません。

言語が変わっても以下のように記述すれば検索できます。

見出し^13[!^13]

何かの文字列の後に空白行があることを確認したいときは、この記述を覚えておくと便利です。

では、特定の見出しの後に空白行がないときに、強制的に空白行を入れる方法を次に説明します。ここでは例として「TITLE OF THE INVENTION」の後に空白行が入っていないものを検索して、強制的に空白行を入れます。

検索する文字列

(TITLE OF THE INVENTION)^13([!^13])

上述との違いは、TITLE OF THE INVENTION[!^13] をそれぞれ括弧()で閉じたことです。()で囲うことにより、その中の情報がそれぞれ\1\2へ代入され、次の「置換後の文字列」の中で使用できるようになります。

置換後の文字列

\1^p^p\2

ここの\1には、先のTITLE OF THE INVENTIONが入っています。\2には、改行ではない何かが入っています。そして、それらの間に改行^pを2回入れることで、以下のような形になります。

TITLE OF THE INVENTION(改行)
(改行)
(改行でない何か)

ワイルドカードを使った検索・置換の準備

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-21-48-51マイクロソフトワードを立ち上げた状態で CTRL + F もしくは CTRL + H を押すと、画像のような「検索と置換」というウインドウが現れます。

翻訳者の皆さんは頻繁に使用されている機能ではないかと思いますが、この「検索と置換」画面にある「オプション」ボタンを押すと、画像のような検索オプションが現れます。

この画面の「ワイルドカードを使用する」にレ点を入れると、検索や置換でワイルドカードを使用できるようになります。

ワイルドカードを使用して検索する場合は、この設定を行ってから実行します。

 

 

ワイルドカード技の連載をはじめます

拙作のワードアドインマクロ「WildLight」は、ワイルドカードを学ぶことでより高度な処理が可能になります。今以上にWildLightを身近に置いて活用いただけるように、今月より、原稿加工や翻訳準備、翻訳チェックなどで役立ちそうなワイルドカードを使った検索文字列、置換文字列を連載していきます。

この一連の連載は、メニューにある「翻訳者のためのワイルドカードリファレンス」をインデックスページとして更新していきます。

 

WildLightでケアレスミスゼロを目指す(英訳編)

こちらの記事も、くにしろさんのブログ「Memo 9246 :: 翻訳備忘録・雑記帳」の記事のご紹介です。

とてもためになる情報が書かれていますので、是非、以下のリンクからご閲覧ください。

Memo 9246 :: 翻訳備忘録・雑記帳「WildLightでケアレスミスゼロを目指す(英訳編)」

WildLightでケアレスミスゼロを目指す(和訳編)

こちらの記事も、くにしろさんのブログ「Memo 9246 :: 翻訳備忘録・雑記帳」の記事のご紹介です。

とてもためになる情報が書かれていますので、是非、以下のリンクからご閲覧ください。

Memo 9246 :: 翻訳備忘録・雑記帳「WildLightでケアレスミスゼロを目指す(和訳編)」

英文に紛れ込んだ全角文字を検出する

大阪ほんま会でのWildLightセミナーの後、くにしろさんが御自身のブログ「Memo 9246 :: 翻訳備忘録・雑記帳」で表題のような記事を書かれていたのですが、こちらでのご紹介が遅くなりました。

WildLightを積極的に使って、ミスを検出しようといろいろと試されていて、とても勉強になります。是非、以下のリンクからご閲覧ください。

Memo 9246 :: 翻訳備忘録・雑記帳「英文に紛れ込んだ全角文字を検出する」

数字の3桁位取りを自動化する

先日行ったWildLight中級セミナーで、受講していただいた方から以下のようなお題をいただきました。もちろん、セミナーではこれを題材にワイルドカードとWildLight特殊コマンドの実習を行いました。うまく解決できたお題ですので、当ブログでシェアいたします。

4桁以上の数字を自動的にカンマで位取りしたい

まず考えたいのは、対象となる数字の桁数です。4桁以上は確かですが、最大何桁までを対象と考えるかです。

X,XXX 〜 XXX,XXX,XXX,XXX

まぁ「兆」くらいをカバーしておけば実用的でしょうか?(笑) すると対応しなくてはならない組合せは以下の3通りということになります。

XXX,XXX
XXX,XXX,XXX
XXX,XXX,XXX,XXX

ワイルドカードで実現する上で、数字の桁数によって処理を変えるというのは、記述が難しそうですので、まずは、末尾三桁(下の例だと012)とそれ以前(123456789)を分けてヒットさせる方法を考えました。

123456789012

[0-9]@[0-9]{3}>

このワイルドカードの記述により、末尾三桁を[0-9]{3}> でヒットさせ、それ以前を [0-9]@ でヒットさせられます。それぞれを置換時に利用するために ( ) で括り、そして、それらの間に位取りのカンマ「,」を挿入するために、置換語に「¥1,¥2」と記述すれば良いことになります。WildLight辞書へは以下のように記述します。(※(TAB)は実際にタブキーを押して入力してください)

WILDCARD:ON
([0-9]@)([0-9]{3})>(TAB)¥1,¥2

この辞書を実行すると、4桁以上の数字は、以下のようになるはずです。

123,456
123456,789
123456789,012

さて、さらに上位の桁の位取りはどうしたらいいでしょう?
そうです。このワイルドカードを繰り返して実行すればいいのです。

ただし、ここで注意しなければならないのは、WildLightに以下の基本機能があることです。

  1. 検索した結果には、必ず蛍光ペンが付く。
  2. 蛍光ペンのない箇所が検索対象となる。

上記のワイルドカードを実行したことにより、数字にはすべて蛍光ペンがついている状態になっています。つまり、そのまま続けて実行したのでは、それらの数字は検索対象から除外されてしまい、位取りがされません。そこで利用するのが、検索時の蛍光ペンの有無を無視するコマンド「IgnoreH」です。

IgnoreH:ON で、検索時に蛍光ペンの有無を無視します(すべてを検索対象として検索する)。ちなみに IgnoreH:OFF でデフォルト値に戻り、基本機能通り、蛍光ペン箇所は検索対象から除外されます。では、これを使って辞書を記述してみると以下の通りになります。

WILDCARD:ON
([0-9]@)([0-9]{3})>(TAB)¥1,¥2
IgnoreH:ON
([0-9]@)([0-9]{3})>(TAB)¥1,¥2
([0-9]@)([0-9]{3})>(TAB)¥1,¥2

これで、兆までの数字に対して3桁位取りが自動で行われ、蛍光ペンがつきます。

この辞書は、ライブラリーに「WLDIC_変換_4桁以上の数値をカンマで自動的に位取り.txt」という名前で登録してありますので、ダウンロードしてご利用ください。

WildLightは、ワイルドカードの1文では表現しきれない処理も、辞書に記述を並べることで処理を可能にできるところが、大きな特長です。

中級セミナーをやります

今年最後の(笑)「WildLight中級セミナー」を東京ほんま会の主催で行います。

日時:8月21日(日) 13:00〜16:30
場所:株式会社翻訳センター会議室
受講料:3,500円

申込詳細は、以下URLの東京ほんま会ブログを参照してください。
https://tokyohomma.wordpress.com/

今回の中級セミナーは、最初にワイルドカードの使い方を学習し、それに続いて受講者からのアンケートに基づいて、ワイルドカードを使ったWildLight辞書の作成を学習します。
以下のような悩みや質問がある方は、是非参加を検討いただき、どんどんアンケートに「やりたいこと」を回答ください。セミナーの中で対応策を一緒に考えていきます。
(※WildLightの機能で実現できる範囲の対処策となりますので、予めご了承ください)

  • チェック辞書を作りたいけど、ワイルドカードでどう書けばいいの?
  • カタカナとカタカナの間にある半角は黄色、数字と単位の間にある半角は緑というような処理をしたいのだけど、どういう風に辞書に書けばいいの?
  • 文書スタイルを整えるための辞書は、どう書けばいいの?
  • 半角と全角の間にスペースが入っているのを検出するには、ワイルドカードでどう書けばいいの?

    などなど

実際にお仕事をしていて、困ったことを何とかできないか?という発想で、具体的な「困った例」をアンケートにお答えいただけると実のあるセミナーになるでしょう。

では、参加をお待ちしております。