プロが教える店舗&オフィスのセキュリティ対策術

こんにちわ、Excelの日本語テキスト(縦に複数行)をWordの辞書機能を利用して単語に分解し、その結果をExcelの横方向のセルに表示するVBAを教えて頂きたいです。宜しくお願い致します。

元       分解後
日本橋郵便局  日本橋  郵便局
東京百貨店   東京   百貨店
大阪警察    大阪   警察
千葉鉄道会社  千葉   鉄道   会社

A 回答 (3件)

#1さんの引用先を利用して、Word を利用したものを作ってみました。


これは、形態素解析とはちょっと違うようです。


'//標準モジュール
Sub TaggerAalysisforWord()
Dim objWdApp As Object
Dim wdDoc As Object
Dim i As Long, k As Long, j As Long
On Error GoTo EndLine
Set objWdApp = CreateObject("Word.Application")
Set wdDoc = objWdApp.Documents.Add
With objWdApp
'2行目から
 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
  .Selection.Text = Cells(i, 1).Value
  For j = 1 To .Selection.Words.Count
  Cells(i, 3 + k).Value = .Selection.Words(j)
  k = k + 1
  Next j
  k = 0
 Next i
End With
  'セル幅の調整
  ActiveSheet.UsedRange.Offset(, 1).EntireColumn.AutoFit
EndLine:
objWdApp.Quit False
Set objWdApp = Nothing
End Sub
    • good
    • 2
この回答へのお礼

ありがとうございました!!
ほぼイメージ通りに単語に分割できました。
ただ、一部の地名や企業名の固有名詞で更に小さい単位に分割された部分がありました。
追加の質問で真に恐縮ですが、例えば自分でExcelに固有名詞のテキストデータを辞書として用意して、先にそちらを見に行って、次にWordの辞書を見に行く、という設定は可能でしょうか?

お礼日時:2018/05/25 16:12

こんばんは。



形態素解析の話とは違うのですか?
私は、Word で使うよりも、専門ツールのMecab を使っています。
Excel では、NMecabCom をインストールしなければなりませんが、それほどの手間ではありません。

https://qiita.com/mima_ita/items/bc2aeb060ee12d2 …

これらは、C:\ 直下にフォルダーを作って入れています。
setup.bat をおこなった後に、参照設定でNMecabCom を登録します。

'//
Sub TestTaggerAnylisis()
Dim t As New NmcTagger
Dim c As NmcNodeCollection
Dim p As New NmcParam
Dim i As Long
Dim buf As String
Dim arBuf()
p.DicDir = "C:\NMeCabCom\bin\ipadic"
For j = 2 To Cells(Rows.Count, 1).End(xlUp).Row
 buf = Cells(j, 1).Value
 Call t.Create(p)
 Set c = t.Parse(buf)
 ReDim arBuf(c.Count - 1)
 For i = 1 To c.Count - 1
  arBuf(i - 1) = c.GetItem(i).Surface
 Next
 Cells(j, 3).Resize(, c.Count).Value = arBuf
 Erase arBuf
Next
End Sub

結果:
「局」の部分の解析をみると、
 名詞,接尾,一般,*,*,*,局,キョク,キョク
 となっていますから、間違えているわけではなさそうです。
「Excelの日本語文書をWordの辞書機」の回答画像2
    • good
    • 1
この回答へのお礼

WindFaller様、2件目のご回答ありがとうございます。
Mecabについても後ほど試してみたいと思います。

お礼日時:2018/05/25 16:14
    • good
    • 1
この回答へのお礼

早々にありがとうございました。

お礼日時:2018/05/25 16:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!