VBA(MeCab)

 

https://qiita.com/kujirahand/items/d49e3801c156e2fa4f39

-- 1. MeCabのインストール

-- 2. MeCab for Excel VBAをインポート

※下記のように修正
If UBound(Cm) < 8 Then GoTo Y_CONTINUE

If UBound(Cm) < 1 Then GoTo Y_CONTINUE

Debug.Print Cmd

'Debug.Print Cmd

-- 3. 開発タブの挿入でボタンを作成
ActiveXコントロールのものを使用する


-- 4. デザインモードONで作成したボタンをダブルクリックするとエディタが開くので下記コードを記載。デザインモードOFFで実行

Option Explicit

Dim TestStr As String
Dim items() As MeCabItem
Dim i As Long

Private Sub CommandButton1_Click()

    '画面を更新しない
    Application.ScreenUpdating = False
    '確認メッセージを表示しない
    Application.DisplayAlerts = False
    
    ThisWorkbook.Sheets("sheet1").Cells.Clear
    
    ' MeCabインストール時の辞書文字コードを指定
    Call SetMeCabCharset("Shift_JIS")
    
    TestStr = "顧客マスタ"
    MeCabExecToSheet TestStr, Sheet1, 1
    MsgBox MeCabExec(TestStr)
    items = MeCabExecToItems(TestStr)
    For i = 0 To UBound(items): Debug.Print items(i).表層形, items(i).ヨミ: Next i
    
    TestStr = "注文明細テーブル"
    MeCabExecToSheet TestStr, Sheet1, 5
    MsgBox MeCabExec(TestStr)
    items = MeCabExecToItems(TestStr)
    For i = 0 To UBound(items): Debug.Print items(i).表層形, items(i).ヨミ: Next i
    
    TestStr = "SKUマスタ"
    MeCabExecToSheet TestStr, Sheet1, 10
    MsgBox MeCabExec(TestStr)
    items = MeCabExecToItems(TestStr)
    For i = 0 To UBound(items): Debug.Print items(i).表層形, items(i).ヨミ: Next i
    
    TestStr = "当月入金額"
    MeCabExecToSheet TestStr, Sheet1, 15
    MsgBox MeCabExec(TestStr)
    items = MeCabExecToItems(TestStr)
    For i = 0 To UBound(items): Debug.Print items(i).表層形, items(i).ヨミ: Next i
    
    
    '確認メッセージを表示する
    Application.DisplayAlerts = True
    '画面を更新する
    Application.ScreenUpdating = True


End Sub