システムwiki

Office:重複する文をScanする

Sammy66 受付中 最終更新日:2020-08-20 13:17

3,000ページ近いドキュメントという単語を持っています.

Carl Jungによるおよそ20,000の引用のみで構成されています.

このドキュメントをScanして、同じ引用を含む文の重複するエントリを見つける方法を知りたいと思います.

この問題に関する支援があれば大歓迎です.

ありがとうございます.

ルイス

返信リスト(回答:12)

1 #
OwlWiza
こんにちはサミー、
これはマクロで実行できます:
ドキュメントを開いて、Alt + F11を同時に押します.これにより、VBE(Visual Basic Editor)が開きます.
左側の[プロジェクト]-ドキュメントの名前の下に表示されます.ドキュメントの名前をダブルクリックすると、次のマクロが追加されます.
Option Explicit
Sub Sample()
Dim MyArray()As String
Dim n As Long、i As Long
Dim Col As New Collection
Dim itm
n=0
'~~>単語ドキュメントからすべての文を配列で取得します
For i=1 To ActiveDocument.Sentences.Count
n=n + 1
ReDim Preserve MyArray(n)
MyArray(n)= Trim(ActiveDocument.Sentences(i).Text)
次へ
'~~>配列を並べ替えます
SortArray MyArray、0、UBound(MyArray)
' ~~>重複を抽出
For i=1 To UBound(MyArray)
If i=UBound(MyArray)Then Exit For
If InStr(1、MyArray(i + 1)、MyArray(i)、vbTextcompare)次に、
エラー時に再開します.次へ
Col.Add MyArray(i)、 "" ""&MyArray(i)& "" ""
エラー時にGoTo 0
End If
次のi
'~~>重複をハイライトします
Col内のitmごとに
Selection.Find.ClearFormatting
Selection.HomeKey wdStory、wdMove
Selection.Find.Execute itm
選択まで実行Find.Found=False
Selection.Range.HighlightColorIndex=wdPink
Selection.Find.Execute
Loop
Next
End Sub
'~~>Sor t配列
Public Sub SortArray(vArray As Variant、i As Long、j As Long)
Dim tmp As Variant、tmpSwap As Variant
Dim ii As Long、jj As Long
ii=i :jj=j:tmp=vArray((i + j)\2)
While(ii<= jj)
While(vArray(ii)ii=ii + 1
Wend
While(tmpi)
jj=jj-1
Wend
If(ii<= jj)Then
tmpSwap=vArray (ii)
vArray(ii)= vArray(jj):vArray(jj)= tmpSwap
ii=ii + 1:jj=jj-1
End If
Wend
If( iIf(iiEnd Sub
マクロを閉じるこれを入力したばかりのwindows を、最上部の真下に閉じますメニューには、小さな再生ボタンがあります.それをクリックし、先ほど作成したマクロを選択して実行します.
これにより、テキストのすべての重複セクションが強調表示されます.
ベスト、
ニック
応答1# ->にスキップ
2 #
Rohn007

マクロは間違いなく進む方法です.ソートは役立ちます.

しかし、マクロの実行後も結果を慎重に検索する必要があります.特に段落の最後にある追加のスペースのような単純なものは、文章が同じではないという考察にマクロを「だばしく」することができます.

あなたの引用符の単一の文章はありますか? (私の多くはありません...)

あなたの引用符はすべて同じ形式であること、つまり、ソース名がどのようにフォーマットされているかなどの方法であることを確認してください.

応答2# ->にスキップ
4 #
Sammy66

圧倒的多数が単文です.

私の見積もりはすべて同じ形式です.これらは主に、カールユングの出版された収集作品、手紙、セミナーなどからのコピーと貼り付けです.

ありがとう

応答1# ->にスキップ
3 #
Sammy66

文書を開けました.

それから私は同時にAlt + F11を打つ.

文書の名前またはVisual Basic Editor

を表示しません

文書の上部に起きるのは、小さいアイコンの水平方向の行です.[画像が添付されている]

を参照してください

あなたは私にもっとガイダンスを提供してもらえますか?

ありがとう

5 #
OwlWiza
こんにちはサミー、
Altキーを単独で押すと表示されます.
Alt + F11を押すと同時にファンクションキー(Fn)も押す必要がある場合があります.
ニック
応答5# ->にスキップ
7 #
Sammy66

FN-Alt-F11を同時にクリックすると、「ApplicationのMicrosoft Visual Basic for Applicationsの「見積2020 2月」が開きます.[添付の画像を参照]

次に何をしますか?

ありがとう

6 #
OwlWiza
それでも機能しない場合は、Wordに[開発]タブを追加して、手動で[Visual Basic]オプションをクリックします.
[ファイル]タブで、[オプション]>[リボンのカスタマイズ]に移動します.
[リボンのカスタマイズ]の[メインタブ]で、[開発者]チェックボックスをオンにします.
タブを表示した後、[開発者]タブは、チェックボックスをオフにするか、Microsoft Officeプログラムを再インストールする必要があります.
ベスト、
ニック
8 #
OwlWiza
左側の「このドキュメント」が表示されている場所をダブルクリックすると、小さなwindows が表示されます.
次に、先ほど送信した大きなマクロをコピーして貼り付ける必要があります.「Option explicit」で始まり、「End Sub」で終わります.
それを追加したら、これを入力したばかりのマクロwindows をトップメニューの真下に閉じます.小さな緑色の再生ボタンがあります.それをクリックして、作成したマクロを選択し(おそらく唯一のオプションです)、実行を実行します.
応答8# ->にスキップ
9 #
Sammy66
  1. 私はあなたが要求したときにマクロを追加することができました.[添付の画像を参照]
  1. しかし、マクロを閉じると、小さい緑色の再生ボタンが表示されません.[添付されているもののスクリーンショットを見る]
10 #
OwlWiza
こんにちはサミー、
本当に小さいです、私はそれがどこにあるところかつ次のようなスクリーンショットを再利用しました:)
応答10# ->にスキップ
11 #
Sammy66

お返事が届かなかったことをお詫び申し上げます.

この惨めな自己検疫により、自宅で問題が発生しています.

親切に我慢して、数日以内にもっと実質的な返答をさせてください.

ありがとう

12 #
OwlWiza
サミー、心配しないで、
同じような状況を自分で持っている!あなたが私を必要とするとき私はここにいます:)
ニック