Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


242 / 886 ←次へ | 前へ→

【664】Re:ExcelとWordの連携でキーワードの頻出度をチェックできませんか
回答  りる  - 10/1/3(日) 21:04 -

引用なし
パスワード
   weipuzhenfu さん、こんばんは。

>まず、Wordに文章
>   Excelに列A:番号
>         列B:キーワード
>         列C:出現回数
>があります。

>Wordの文章の単語が Excelのキーワードに
>該当すれば、Word文章中のその単語に識別のために
>何らかの書式設定(例えば、アンダーライン)を施し、
>かつ、Excelの列Cに頻出回数を累積してカウント
>する。

上記エクセルファイルの名前がLIST1.xls、リストのあるシートがSheet1、リストは1行目が見出しでこんなレイアウト。
 A    B     C
1    キー    カウント
2 1 Word
3 2 Excel
4 3 文章

ワード文書は質問投稿文をそのまま貼り付けてテストしました。

マクロはワードVBEに全部記述します。
Sub Main()
  Dim xlApp As Object, obj As Object, rr As Long, s1 As String
  'Excelの処理
  'ヘルプのCreateObjectからほぼそのまま転載
  Set xlApp = CreateObject("excel.application")
  'フォルダはdocファイルと同じところから開く。 ファイル名は LIST1.xls
  Set obj = xlApp.Workbooks.Open(ThisDocument.Path & "\LIST1.xls")
  rr = 1
  Do
   'B列
   rr = rr + 1
   s1 = obj.Worksheets("Sheet1").Cells(rr, 2).Value
   If s1 = "" Then Exit Do 'カラになったら終わる
   '結果はC列に入れる
   obj.Worksheets("Sheet1").Cells(rr, 3).Value = S1NN(s1)
  Loop
  'エクセルは終了せずに置いておく(そのままマクロは終了)
  xlApp.Visible = True
  Set obj = Nothing
  Set xlApp = Nothing  ' オブジェクトの参照を解放します。
End Sub
'////////////////////Wordの処理
Function S1NN(s1 As String) As Long
  '出現数をカウントするマクロ
  Dim tf As Boolean
  Dim NN As Long
  '文書の先頭に移動
  ActiveDocument.Range(Start:=0, End:=0).Select
  '検索条件設定→開始
  With Selection.Find
   .ClearFormatting
   .Text = s1
   .Replacement.Text = ""
   .Format = False
   .MatchCase = False
   .MatchWholeWord = False
   .MatchByte = False
   .MatchAllWordForms = False
   .MatchSoundsLike = False
   .MatchWildcards = False
   .MatchFuzzy = True
   NN = 0 '検索を繰り返す
   Do
     tf = .Execute(Forward:=True)
     If Not tf = True Then Exit Do
     Selection.Range.HighlightColorIndex = wdYellow 'マーカーは黄色
     NN = NN + 1
   Loop
  End With
  '出現回数
  S1NN = NN
End Function

エクセルファイルが開いたままだと上書きできなくなります(読み取り専用)。

1,445 hits

【663】ExcelとWordの連携でキーワードの頻出度をチェックできませんか weipuzhenfu 09/12/30(水) 18:49 質問[未読]
【664】Re:ExcelとWordの連携でキーワードの頻出度を... りる 10/1/3(日) 21:04 回答[未読]

242 / 886 ←次へ | 前へ→
ページ:  ┃  記事番号:
207136
(SS)C-BOARD v3.8 is Free