• 締切済み

EXCELのセルの単語の類義語を自動入力するマクロ

こんにちは お世話になります。 エクセルで、[A列に並んでいる単語の類義語をExcelの類義語検索機能で3つほど選択してB列に記述されている文の後尾に結合させる] ということをしたいと思っております。 具体的に説明しますと、 A列セルにずらりと英単語、B列セルにずらりと左の語に対応する意味が入力されておりまして、 Excel校閲機能にあります類義語検索機能によって類義語を適当に上から3つほど選択して そのB列セルに書かれた意味の後にスペースを置いて連結したいのです。(同じB列のセル内で) Excelは2013です。 画像に示しますところの1~3行目(deficient ethics ease)のような具合です。 語の数が膨大であり、手作業ではどうにもならないので、マクロを組んだほうがスムーズに事を進められると考えました。 この作業要件を満たすマクロを作成できる方がいらっしゃいましたら、 どうかそのお力をお貸しただけないでしょうか。 よろしくお願い致します。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

Wordなら出来る様です。Excel VBAから試しに取得してみました。結構時間がかかり、画像の例でもPCが少し考える感じですので、多量のデータを処理する前に、少量のデータで試行してみて下さい。Sheet1という名前のシートを対象にしています。 ご参考まで。 Micorosoft Word 14.0(Office2010の場合) Object Libraryへの参照設定が必要です。 参照設定については必要により、下記リンク先等をご覧下さい。 http://www.tipsfound.com/vba/01005 Sub test() Dim targetRange As Range, myCell As Range Dim WD As Word.Application Dim i As Long, listCount As Long Dim sList As String Dim buf As Variant On Error GoTo errhandle Application.ScreenUpdating = False Set WD = CreateObject("Word.Application") With ThisWorkbook.Sheets("Sheet1") Set targetRange = .Range(.Range("A1"), .Range("A" & .Rows.Count).End(xlUp)) End With For Each myCell In targetRange.Cells buf = WD.SynonymInfo(myCell.Value).MeaningList For i = 1 To UBound(buf) Select Case i Case 1 sList = buf(i) Case 3 sList = sList & "," & buf(i) Exit For Case Else sList = sList & "," & buf(i) End Select Next i myCell.Offset(, 1).Value = myCell.Offset(, 1).Value & " : " & sList Next myCell errhandle: On Error GoTo 0 On Error Resume Next WD.Quit Set WD = Nothing Application.ScreenUpdating = True End Sub

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

調べてみたのですが、「VBA」で、類義語を取り出すのは不可能かと思います。 要するに、「類義語機能」を呼び出すような関数その他が存在しないようです。 エクセルが持っている、類義語を書き出せれば、何とかなるかも知れないのですが、それもできそうにありません。 申し訳ありませんが、どうも「ムリ」そうです。

tooktooktacken
質問者

お礼

そうなのですか。かなり多機能だと思っていたVBAですが、残念です。 わざわざ調べていただき、感謝しています。ありがとうございました。

関連するQ&A

専門家に質問してみよう