> 質問は、オフィステクニック、即効テクニック
>
>
http://www.moug.net/tech/woopr/0110023.htm
>
> で、使用されている検索する文字列に記載されているワイルドカードの意味が分かりません。
> ()の位置や、なぜ)が二つ存在するのかなどなど。
>
> 申し訳ありませんが、もし宜しければ、ご回答賜りますようお願いいたします。
検索と置換ワイルドカードルビの一括削除回答
ご質問の件ですが、
まず、ポイントは「()」の利用法になります。
(Word2003のヘルプ「文字列およびその他の項目を検索、置換する」
の「検索と置換で使用するワイルドカード」を参照)
「検索と置換」ダイアログボックスで「ワイルドカードを利用する」
にチェックを入れた場合、「()」は通常の文字ではなく、特殊な文字
(メタ文字)として認識され、()内の文字列を「まとまり」として扱
えるようになります。
また、\n(nは数値)とすると、そのまとまりを先頭からの順序を指
定して利用できます。
例えば、
検索したい文字列 山田太郎 があるとして、
「検索する文字列」ボックスに入力する文字列
(山田)(太郎)
「置換する文字列」ボックスに入力する文字列
\2\1
とすると、
「山田太郎」という名前を検索し、まとまりの1つ目(山田)と2つ目
(太郎)を入れ替える(\2\1)、という意味になり、結果、
太郎山田
となります。
あくまで、検索するのは「山田太郎」ですが、カッコで括った文字列
をまとまりとして扱うことができる、という点がポイントです。
※グループ化については、2006.4.21発行【オフパー】Vol.617の
Wordのテクニックでも紹介しているので、併せてご参照ください。
さて、即効テクニックの内容ですが、
紹介している検索する文字列は、「ワイルドカードを利用する」に
チェックを入れた上で、下記のようになっています。
EQ *,(*)\)
これを、分解して意味を整理すると、次のようになります。
EQ :先頭にEQという文字がある
*, :任意の文字列で、最後にカンマがある
(*) :任意の文字列で、見つかった文字をまとまりとして認識する
\) :カッコで終わる
このとき、(*)のカッコは、「ワイルドカードを利用する」にチェッ
クが入っている場合、特殊な文字(メタ文字)として処理され、カッ
コで囲んだ文字をグループ(まとまり)として認識します。
\は、メタ文字を特殊な意味を持たせず、そのまま認識させるための
ものです。
「)」は先ほどの(*)の様に利用するためのメタ文字ですが、ここでは
通常のカッコとして認識させるために「\」をつけています。
これをまとめると
「EQで始まり、途中にカンマがあって、最後に「)」で終わる文字列」
を検索し、カンマの後にあって、最後の「)」の手前までの文字をま
とまりとして認識する。
という意味になります。
例えば、「画期的」という言葉にルビを振った後、フィールドコード
を表示すると次のようになります。
{EQ \* jc2 \* "Font:MS
明朝" \* hps10 \o\ad(\s\up 9(かっきてき),画期的)}
これを先ほどの条件で検索すると、「まとまり」に該当するのが
「画期的」という文字になります。これが、まとまりの1つ目になり
ます(ここでは、2つ目以降のまとまりはありません)。
これを、
EQ \1
で置換するということは、元の文字列を「"EQ
"とまとまりの1つ目」
で置き換える、という意味になり、結果、「EQ 画期的」という文字
列に置き換えられます。
なお、ここで「EQ 」をつけずに単に「\1」に置換すると、フィール
ドコードを非表示にした際に、「画期的」という文字列が表示されな
いため、正しく処理できなくなってしまいます。
この後、手順に従い、ルビを解除した文字列を選択してコピーなどで
[テキスト形式]で貼り付けることで、フィールドコードが削除されま
す。
以上、かなりの長文になってしまいましたが、疑問は解消されました
でしょうか?
また何かございましたら、遠慮なくお問い合わせください。
今後とも、モーグ並びに弊社プロジェクトAをよろしくお願いいたし
ます。
モーグ運営事務局 プロジェクトA 田中