- ベストアンサー
Wordで表記の不統一を見つけるマクロを作る方法
- Wordで作成された英文の報告書をチェックする仕事をしていると、表記の不統一がよく見られます。
- 例えば、日本語の「24時間」を英語で書く際には「24 h」「24 hr」「24 hours」と複数の表現方法があります。
- これらが混在している場合、数字部分をワイルドカードを使用して検索し、単位ごとにヒットした数を表示するマクロを作成することができます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 追加 1 既にご存じと思いますが、また質問に「マクロを」とあったので、言及していませんが、「ワード」の機能の一大テーマである、「表現のゆれ」(「表記のゆれ」「表記のゆらぎ」)や「文法上の誤り」には触れませんでしたが、こちらが検討すべきメインだと思われます。 Googleででも「ワード 表現のゆれ」などで照会して、数個の記事を整理してみてください。 ーー 追加 2 また特殊部門(仕事)に特化した、https://journal.jtf.jp/eventreport/id=87 「スタイルチェックツール(JTF日本語スタイルチェッカー、Wordマクロ「蛍光と対策」、TransQA)の紹介」のようなソフトもあることから、 質問者のニーズに適した、ソフトが市販されてないか、探すのが、本流と思います。すなわち、(自分で)作るよりも、「出来たものを買う」(もしフリーならラッキー)、時代だと思います。 本質問課題は、素人がWordVBAで「ちょこちょこ」とプログラムを組むレベルの課題ではなく、プロに近い方の作ったソフトに頼るべき課題と思いますので。 追加 3 https://www.wordvbalab.com/page-916/ Wordの便利な機能紹介 にマクロ関連の、かつ本件質問の周辺的な記事があります。 これらを見て、自分で「やろう」と思うか、どうか。
その他の回答 (4)
- kkkkkm
- ベストアンサー率66% (1719/2589)
> コードが見れればと思いましたが、パスワードかかっていて中身は見れませんでした。 vba パスワード 解除 する方法はネットに情報があります。Googleが教えてくれますよ。
お礼
お礼が遅くなり申し訳ございません。 そんなこともできてしまうのですね、参考になります。 ありがとうございました。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> なので24 hは黄色、24 hrは青色など色分けできると便利かなと思っています。なのでマクロで一気にできないかなと思い、質問させていただいた次第でございました。 以下のフリーソフトが使えると思います。複数文字列の検索結果を一覧表示してくれて行番号で元文書の該当場所にリンクしているので便利です。 指定した複数の検索語をMS Office系ファイルの内容に対して検索し、記載場所を詳細に表示 https://www.vector.co.jp/soft/winnt/util/se509953.html
お礼
ご回答ありがとうございます。 お教えいただいたフリーソフトもいい感じなのですが、仕事で使用するPCにはフリーソフトが入れられないため、残念ながら今回は使用できなさそうです。コードが見れればと思いましたが、パスワードかかっていて中身は見れませんでした。
- imogasi
- ベストアンサー率27% (4737/17069)
Word VBAで何かをしたい、なんて、「やめときなはれ」。 解説本は現在実質1本しかないし、WEB記事もあるが、小生の場合は、知りたい課題の、先が途切れて、前に進まず断念というケースが多い。 質問者が、周りに教えてもらえ(WordVBA限定,エクセルVBAでは不可、 考えが大幅に違う)る人がいるか(ほぼ存在しないだろう)、質問者が、粘り強く、相当しつこい(あきらめない)性格で、プログラムが好き=ある程度得意で)ないとできないと思う。 それをすると、時間をとられますが、人生や仕事も抱えて、本件にこだわるべきか疑問です。 中身によっては、質問コーナーへの質問への回答も、ぐっと少ないと思います。 ーーー まず質問者は、代表的な(多分多数の)パターンを(文章で)列挙できますか? それらを、特徴を捉えて整理できますか?これはプログラム以前にやることですが。そういうのは、プログラムの思考の経験が必要です。プログラムでは、何が できるかを、ある程度知ってないとならないからです。 ーー そして文章の中の部分を、特徴を捉えて、捉える仕方は、「正規表現」という 、世界の理系の学者仲間が考えたらしき(VBA系よりUNIX系か)、仕組みがあります。 これもまず勉強が必要ではないかな。入口は、MSの「ワイルドカード」などです。「置換」機能も備わっています。VBS(RegExp)でも正規表現は相当使えます。しかし考え方に難しい点もあります。 ーーー 小生が、初歩的に思いつくのは、出来るだけ、抽象的な(適切に抽象化するのがポイント。それによって考える・捉えるべきパターン数が少なくできるから)、候補パターンを列挙して置き、その語句で「検索」(WordVBAかRegExpで)し、ハイライトで該当語句部分に色を付け、その箇所を(人間の経験の目を通して=必須)チェックし、置換か手動で修正をすることです。 ーー 小生は素人ですから考えが不十分かもしれませんが、質問の課題だけを考えると ・1-24の数字が先行してある ・次にスペースはあっても可、なくても可 ・続いて、hかHが続く(h、hr、Hourのどれかなどで絞る手もある) を正規表現で表せれば、該当らしき箇所を探せるのかなと思う。 でもそれは、正規表現の中級以上の経験が必要だと思う。
補足
早速ご回答いただきありがとうございます。 Excel VBAは少しかじった程度ですが、回答者様のおっしゃるようにWordはだいぶ勝手が違い、挫折しているところです。回答いただいた内容をあまり理解できない時点でこれ以上は難しいと感じております。 今回の例の場合、ワイルドカードで検索する場合、どうするのが適切でしょうか? 「[0-9]{1,3} <h」で「数字3桁まで+スペース+hで始まる単語」を探せるとおもうのですが…。これに加えてスペースなしの場合、ハードスペースだった場合等を再度探すことで網羅的に探せるかと思っております。
- kkkkkm
- ベストアンサー率66% (1719/2589)
高度な検索でワイルドカードを利用して検索文字列*hで「検索された項目の強調表示」をオンにしておけばどうでしょうか。
お礼
早速ご回答いただきありがとうございます。 確認なのですが、「検索された項目の強調表示オン」は黄色だけでしょうか?今回例として「24 h」を挙げましたが、他にも多くの表記ゆれをチェックしたいため、ひとつずつ全パターンを検索していくのは時間がかかります。なので24 hは黄色、24 hrは青色など色分けできると便利かなと思っています。なのでマクロで一気にできないかなと思い、質問させていただいた次第でございました。
お礼
追加で貴重な情報をいただきありがとうございます。 確かに市販ソフトもよさそうですね。会社が買ってくれるかどうか、PCにいれてもいいか、問題はありますが…。追加3のWordの便利な機能紹介は非常に勉強になりそうです。まだほとんど見れていませんが、かなり参考になりそうです。ありがとうございました。