• 締切済み

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

  • Word 類義語 類義語辞典に関して質問です

    よろしくお願いいたします。 FLOWER(全角)という単語を右クリックで類義語で検索します。 右クリックからの検索であれば文字列が全角でも半角でも 半角表示で「blossom」などと表示されます。 ところが、ツールメニュー → その他の校正ツール → 類義語辞典 から検索すると、半角も全角に自動的に変換されてしまうようです。カーソルを文字列内に表示しています。 同じ機能なのですが、なぜ、このような結果になるのかが不思議です。 Ver.2002です。 ご存知方がいらっしゃいましたら、ご教授のほど よろしくお願いいたします。

  • 類義語について

    類義語について質問です。 中学生のいとこに質問されて返答に困っております。 Wordで、類義語辞典を使っていたときのことです。 Supperの単語をDinnerに置き換えるという操作をしました。 逆にDinnerの類義語を検索するとSupperは検索されませんでした。 いとこに「なぜ?」と聞かれなんと答えてよいか返答に困っております。 きちんとわかりやすいように説明をしてあげたいのですが、なんと答えたらよいでしょうか? ネットでも色々検索してみましたが検索できませんでした。 教えてください。よろしくお願いします。

  • PostgreSQLでの類義語検索

    かけだしのプログラマーです。 PostgreSQLで全文検索や類義語検索を行います。 現在、Ludiaの使用を検討していますが、Ludiaには類義語検索機能はないと、 サイトに書いてありました。 また、「PostgreSQL、類義語」で検索してみたところ、dict_xsyn(拡張類義語辞書) というものがひっかかりましたが、情報が少なすぎてコレがいまいち何なのか分りません。 類義語検索を行うのに、何か効率の良い方法があるかご存知でしょうか? もしくは、原始的にselect文にORを組み合わせて発行するしかないのでしょうか? 御助言よろしくお願いします。 <条件>  PostgreSQL 8.3  類義語検索  EUC-JP  全文検索機能,類義語検索機能

  • エクセルのマクロ自動記録でセル指定がうまくいかない

    エクセルでマクロを記録させて作業を簡略化しようとおもい、現在のセルから相対的にセルを選択してその内容を削除させようとしました。しかし、結果は絶対セルが 常に消えてしまいます。どうすれば相対セルを選択させられるのでしょう 教えてください。

  • 【エクセル】マクロでのセル移動についてお尋ねしたいのですが。

    エクセルで、行数の異なる複数の列に大量のデータを入力しています。 「マクロ実行用のボタン」を1つ作って、そこをクリックする度に、 例えば、セルを「B2」→「C2」→「D2」→「B2」→繰り返し のように順番に選択するといった、マクロを作りたいのですが、詳しい方、アドバイスお願いします!

  • エクセルで連番をマクロで

    こんにちは いつもお世話になっています。 Windows7、エクセル2010で教えてください。  B3から仮にB100まで文字列があるとします、空白セルはありません。 この状態でA3からA100まで1から始まる連番をマクロで実行したいのです。 実際はB列のデータの最終行は不定です。つまり、B列にデータがなくなるまで(空白セルになるまで)A列に連番をつけたいのです。現在はA3,A4に1,2と入力し、オートフィルで該当セルを選択し「予測」で連番をつけています。 マクロ記録ではB列にデータがなくなる判断ができなくて作れません。 この作業が頻繁にあるものですからマクロができれば助かります。 よろしくお願いいたします。

  • エクセルで検索後、隣のセルの内容を編集するマクロ?

    建設会社の事務で働いており、会計ソフトの入れ替えに伴い、確認作業のためのデータ入力を行っています。 A列に工事番号、B列に材料仕入れに使った代金の合計を入力していくという作業をしています。 B列の代金の入力方法は、例えば「ある材料19,800円、他の材料に5,670円使った」とすると「=19,800+5,670」というようにセルの中で計算して合計を出すようします。 1日毎の伝票を見ながら、膨大な数のA列の工事番号から該当の工事を見つけ、その工事のB列を選択、データを更新するという作業を行うので、少しでも効率化を図りたいと考えているのです。 そこで初めてマクロを組んでみようと考えました。 実現したいのは以下の手順です。 (1)A列から該当のセルを検索(この際、工事番号はSO-1707というようにアルファベット、ハイフン、数字から成り立ち、アルファベットが異なる工事番号で数字はカブるものがあります。 全文一致させれば良いのですが、少しでも効率化したいので、アルファベットとハイフンの入力を省き、複数候補からエクセル既存の検索機能のようにエンターとESCキーで選択したいと考えています。) (2)ヒットしたセルの横(B列)のセルを選択、入力出来る状態にする(既にデータが入力されている場合があるので、その文字列の最後に入力できる状態になってほしいと考えています。) (3)マクロ終了 Findを使えばいいんだろうということはわかるのですが、はじめてなのでその他のコトがわかりません。 ご教授願います。

  • Excelマクロ 選択したセルに対応する文字を設定

    A1からA5000までとB1からB5000までにデータが入っているとします。 その、A1からB5000までのデータを配列として収納して、選択したセルでマクロを実行するとA列から検索して対応するB列の値を一つ右のセルに挿入するマクロを作りたいと思います。 このようなマクロを作るには、 1.データを収納するマクロ 2.検索して出力するマクロ を作る必要があると思うのですが、どのような方法で実現するのがよいでしょうか?

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

専門家に質問してみよう