
Wordで報告書を作成していて、Word内の単語を説明するのに
報告書をみながら専門用語をExcelにまとめる作業を毎度行っているので簡略化したいです。
前回までの専門用語の説明過程をExcelにまとめた内容があるので、
---
そのExcelを使用してWord内の単語を検索
↓
検索に該当した単語を抽出
---
を、VBAで簡単に行いたいのですが、
あまりVBAは勉強していないので検索しても見つからず困っています。
異なるアプリ同士なので難しいかもしれませんが、
良い案があればお教えください。
No.2ベストアンサー
- 回答日時:
こんにちは
よくわからないので、テキトーです。
(ワードのVBAを知らないこともありますけれど…)
「エクセルのセル範囲に存在する各文字列が、ワード文書内に存在するかどうかをチェックしたい」
ということと解釈しました。
以下、ごく簡単なサンプルですので、後は適当にアレンジしてください。
・エクセルのアクティブシートのA列に文字列が並んでいるものとします
・指定のワード文書内にその文字列が存在すれば、B列に〇を表示します
※ ワード内の検索は通常の文章部分のみを対象としています。
※ ワード文書を開いて、処理後に閉じるため、若干時間がかかるかも知れません。
Sub sample_12321737()
Dim sh As Worksheet, c As Range
Dim wd, doc
Const wordPath = "C:\Users\hoge\word.docx" 'ワード文書のパス
Set sh = ActiveSheet
sh.Columns(2).ClearContents
Set wd = CreateObject("Word.Application")
wd.Visible = True
Set doc = wd.documents.Open(wordPath)
For Each c In Range(sh.Cells(1, 1), sh.Cells(Rows.Count, 1).End(xlUp))
If c.text <> "" Then
With doc.Content.Find
.ClearFormatting
.Execute FindText:=c.text, Wrap:=wdFindContinue
If .found Then c.Offset(, 1).Value = "〇"
End With
End If
Next c
doc.Close False
wd.Quit
End Sub
解答ありがとうございます!
fujillinさんのおかげでやりたかったことの1つができました…!
これとは逆に、抽出出来なかった単語(検索に該当しなかった単語)も、条件付きで抽出したいのですが、可能であれば教えて頂けると嬉しいです。
No.6
- 回答日時:
No.4です。
今回の質問内容については以前『テキストファイルに書かれた語句(1対1)を読み込んで置換させ蛍光ペンで塗る』と言うのを昔作った記憶があって、その保存したコードが見つからずに出遅れました。
考えてみたらあれはWordVBAで作ったものなので修正が少々手間になったかもです。(Wordは基本操作も出来ない初級者以下なので)
No.4について提示したのはフリーソフトで検索してもあるかもですが、ExcelなどVBAですと精度が怪しそうな感じで、どちらかと言えばPython,R言語,Go言語辺りの方が自身で組むよりパッケージを追加インストし利用って手段はあるのかなと。
でも基本操作から未経験であれば委託と言うのも良いのかも知れませんね。
Word自体も品詞はともかく語句で分割する手段はあるでしょうけど、どのように分割してくるかは当てになるか?と言う感じかも。
『今日の日はとても良い天気になりそうですね。』
と言う一文があったとしてWordVBAで
Sub megu()
Dim stWord
For Each stWord In ThisDocument.Words
Debug.Print stWord
Next
End Sub
を実行すると、
今日
の
日
は
とても
良い
天気
に
なりそう
です
ね
。
こんな感じで品詞は不明のただの分割にはなりますね。
これを手直しってのも手間かもとは思います。
テキストボックスなどのオートシェイプ等への考慮はよくわかりません。
なんせExcelVBAと違いWordVBAは余り情報がなく、あっても英語とかで私には解読できないので。(悪戯に試してみて結果で判断する程度)
ありがとうございます!
単語分割で無題のExcelを出力するところまでは出来ていたのですが、
仰る通り、単語の分割基準が曖昧で、
例えば「天気予報」というのが「天気」「予報」と、1つで良かったものが2つにわかれてしまうことが多く、
--------------------------
縦に並べたところから不要な単語を空白にし、残った単語が縦に並ぶ条件で番号を付与させて単語同士をくっつける。というのをExcelの関数で行い、
=IFERROR(INDEX(D:D,SMALL(IF(D:D<>"",ROW(D:D)),ROW())),"")
↑の関数で空白を詰め、Googleスプレッドシートで「UNIQUE」という関数を使用して列中の単語の重複をなくす。
--------------------------
という関数を行う必要があり、かなり重いので最終手段かなと思ってます…
単語同士の組合せができるのでありかなとは思っているのでもう少し悩んでみます!過去のマクロを探してまでご解答頂きありがとうございました!
No.5
- 回答日時:
No3です。
>Word内で連なる漢字の単語を抜粋するようなマクロを組む事も出来ないかなと思いまして…
>お時間あれば組んでいただけないでしょうか……?
ソフトの作成を依頼したいのなら、質問サイトではなく、依頼サイトあるいは委託を受ける会社に依頼なさるのが適切です。
いずれにしろ、単語に分解・抽出するロジックを説明してくれない限り、私には手も足も出ませんし・・・
こんなことになりそうな予感はしていましたが、No4様の回答にあるソフトなどを利用するのも一法かも知れません。
追記ありがとうございます!
やはり依頼するのがベストですよね……
質問の解答頂いてる間に職場の方と話してたのですが、趣味の範囲で出来るような内容じゃない気がしておりまして…
それでもfujilinさんの最初にご提示頂いたマクロで、やりたい事のひとつはできたのでとてもありがたいです…!
お時間を割いてくださりありがとうございました!
No.4
- 回答日時:
ちょっと質問文を読み返してみて気になった点が。
>Word内の単語を説明するのに報告書をみながら専門用語をExcelにまとめる作業を毎度行っている
この作業を行なって作成したExcelのデータをWordから調べるってのもちょっと違うような気もするのですが、まず最優先として
>Word内の単語を説明するのに報告書をみながら専門用語をExcelにまとめる
この部分の自動化は完了しているのでしょうか?
そしてWord文書内の専門用語リストが全てExcelに作成されているかを調べるのが本来の手順に感じますが、私の気のせいでしょうか?
報告書の文章を品詞分析して該当しそうな語句をリストアップする辺りは、そんなソフトもあるのでやっぱ気にし過ぎなのでしょうね。
そうであればスル~して下さい。
細かいところを気にして下さりありがとうございます!
自動化は出来てないです…
今回の質問内容で聞きたかった内容の、
「検索に該当した単語を抽出」というのは、
手動で既に作っている単語集Excelを元に、
C3から下に向かって単語がずらりとならんでいるので、それを検索対象と出来るかなと!
なので、[検索先とするWord]に対応させる[検索対象のExcel]があるので、「Word文書内の専門用語リストが全てExcelに作成されているかを調べる」が可能になるかと思っています。。
No.1
- 回答日時:
それぞれはどのように作られているのか?の除法は必要だと思いますよ。
単にExcelの単語リスト?のある単語がWord内にあるか否かってだけのようにも思えますし。
⇒『検索に該当した単語を抽出』って検索する語句はExcelに既にある訳ですよね?
検索してヒットした語句から繋がる何かを取得と言うなら、その範囲はどこまでなのかってのは必要でしょ。
ご解答ありがとうございます!
ざっくり言うと、ExcelのC3から↓にずらっと単語がならんでおり、
対象が複数ある(今後も行数は増え続ける)ので、参照対象が複雑で悩んでいるところです。
Word内から数個なら検索機能で検索で良いのですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- Word(ワード) パソコン内にあるwordファイルを探したいです。word内に、ある単語が利用されている(書かれている 1 2022/10/11 16:38
- Access(アクセス) Excel や Access のフォームの中でいわゆるインターネットの検索窓のようなものを構築できま 9 2022/05/21 12:39
- Word(ワード) Wordで作った資料の修正方法 2 2023/06/19 00:51
- ノートパソコン 大学のレポート作成専用ノートパソコンとして、VAIO SX12(Core i7、32GB、1TB-S 5 2023/06/10 11:14
- ノートパソコン ノートパソコンでただ単にOfficeのExcelで簡単な表作成やWordで文書作成する程度の使用であ 8 2023/05/13 19:08
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Word内の単語をExcelシート内の...
-
このhowからbeまでの節はこのよ...
-
ギリシャ語で絶望はなんと言う...
-
英語について質問
-
whereas(だが一方)という単語...
-
イタリア語単語の意味
-
日本語で作ったwordファイルな...
-
中国人、韓国人って声がでかく...
-
谷川俊太郎って
-
中国語での表現を教えてください。
-
なぜ、バチカン市国ではラテン...
-
DVDやBDの輸入版で、字幕を翻訳...
-
usbメモリに保存したファイルを...
-
「多言語」と「他言語」の違い...
-
特定のサイトにアクセスしよう...
-
海豊国際控股の控股の日本語読...
-
謙譲語は外国語にありますか
-
この韓国語の意味を教えてください
-
マルクス「資本論」のわかりや...
-
いい休日でしたは? 좋았휴일이...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ギリシャ語で絶望はなんと言う...
-
単語の定義とは何ですか
-
英語の参考文献で大文字にする...
-
Word内の単語をExcelシート内の...
-
winからmacへの辞書データ移行方法
-
このhowからbeまでの節はこのよ...
-
「ボランティア申込み」を英語...
-
英語について質問
-
MS-IMEの単語登録(一括)
-
単語出現回数カウントソフト
-
mailの最初は大文字ですか?
-
中1の国語 単語に分けるとき、 ...
-
分かち書きと文節の違い
-
VBA 変数・定数名の付け方
-
これは私の一冊の本です。
-
ソシュール言語観による品詞、...
-
[MS-IME]『単語の登録』の「品...
-
大文字と小文字の区別
-
国際音声記号の読み上げについて
-
大文字を使う場合って?
おすすめ情報