Office関連

MDBファイルから読み込んだ単語を検索し、ヒットしたら単語の意味をコメントにするWordマクロ

MDB(Accessデータベース)ファイルを作成してデータを格納するExcelマクロ」で辞書データを格納したMDBファイルを作成しました。
折角なのでこのファイルを利用したWordマクロを考えてみます。

Option Explicit

Public Sub AddCommentFromMDB()
  Dim DBFilePath As String
  Dim con As String
  Dim cn As Object
  
  Const TableName As String = "tblDic" 'テーブル名
  Const FieldName1 As String = "word" 'フィールド名1
  Const FieldName2 As String = "meaning" 'フィールド名2
  
  DBFilePath = ThisDocument.Path & Application.PathSeparator & "MyDB.mdb"
  If Len(Dir(DBFilePath)) < 1 Then
    MsgBox "MDBファイルが見つかりませんでした。" & vbCrLf & "処理を中止します。", vbExclamation + vbSystemModal
    Exit Sub
  End If
  con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBFilePath
  
  Set cn = CreateObject("ADODB.Connection")
  cn.Open con
  With CreateObject("ADODB.Recordset")
    '.Open TableName, cn, 1, 1
    .Open "SELECT * FROM " & TableName & " WHERE " & FieldName1 & " LIKE 'a%'", cn, 1, 1 '"a"から始まる単語のみ処理
    If .RecordCount <> 0 Then
      .MoveFirst
       Do Until .EOF
         FindProc .Fields(FieldName1).Value, .Fields(FieldName2).Value
         .MoveNext
         DoEvents
       Loop
    End If
    .Close
  End With
  cn.Close
  Set cn = Nothing
  MsgBox "処理が終了しました。", vbInformation + vbSystemModal
End Sub

Private Sub FindProc(ByVal txt1 As String, ByVal txt2 As String)
  Dim r As Word.Range
  
  Set r = ActiveDocument.Range(0, 0)
  With r.Find
    '検索条件は適宜変更
    .ClearFormatting
    .ClearAllFuzzyOptions
    .Text = txt1
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .MatchCase = True
    .MatchWholeWord = True
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
    Do While .Execute
      r.Comments.Add r, txt2 'コメント追加
    Loop
  End With
  Set r = Nothing
End Sub

上記マクロを実行すると、MDBファイルから読み込んだ単語を元にWord文書内を検索し、ヒットした場合はMDBファイルから読み込んだ単語の意味をコメントにする処理を行います。
(全レコードを処理すると件数が多いので、上記コードではWHERE句で処理する単語を制限しています。)

今回は簡単にテストしただけなので検索精度を考慮していません。
より正確に処理する場合は、検索条件やMDBに格納するデータ内容を変更する必要があります。

MDB(Accessデータベース)ファイルを作成してデータを格納するExcelマクロ前のページ

「DQNネーム辞書」を更新しました。次のページ

関連記事

  1. Office関連

    【2017年1月版】Microsoft Edgeを操作するVBAマクロ(DOM編)(2)

    昨日の記事で、Microsoft Edgeを操作するVBAコードを改め…

  2. Office関連

    「傍点をふる」をWord 2007/2010で簡単に使う方法

    Wordで文字列を強調したいときに便利なのが「傍点をふる」コマンド。…

  3. Windows 10

    Microsoft Edgeを操作するVBAマクロ(WebDriver編)

    Microsoft Edge Dev Blogに「Bringing a…

  4. Office関連

    Office製品のヘルプをHTML形式で閲覧する。

    「Word2013 VBA の日本語ヘルプ」で回答した通り、Offic…

  5. Office関連

    未読アイテムの件数を取得するOutlookマクロ

    「Outlook 未読 件数 マクロ」といったキーワード検索でのアクセ…

  6. Office関連

    Wordの自動実行マクロ

    たまたま使用する機会があったのでメモ書き程度に情報を残しておきます。…

コメント

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP