[mecab-users 392] Re: Excel VBA からMeCabを使用するには?

Back to archive index

fukum****@amber***** fukum****@amber*****
2010年 1月 7日 (木) 00:42:43 JST


福光です。

>> VBAが native の DLL を呼べれば可能かとおもいますが、
>> それ以上のことは良くわかりません。
>
> たぶん、コレでいけると思いますが、native DLL を VBA から使った
> ことがない人には大変かもしれませんね。

以下のサイトを参考に、見よう見まねで試していますが、
基本的な知識が不足しており、かなり苦戦しています。。。

・C++ネイティブDLL VBから参照
 http://www.nextftp.com/swlabo/m5_cpp/hp_dll/dll_00_02.htm

・日本語形態素分析エンジンMeCabをVB2005より利用する
 http://homepage1.nifty.com/yasunari/VB/VB2005/MeCab.htm


' 以下コード **************************

' MeCab: 0.98(Windowsバイナリ) + Excel2003
'
' PtrMecab = mecab_new2(SouceText) のところで
' 「実行時エラー'49': DLLが正しく呼び出せません。」というエラーが出てしまう。 

'
Declare Function mecab_destroy Lib "libmecab.dll" (ByVal m As String)
Declare Function mecab_sparse_tostr Lib "libmecab.dll" (ByVal m As String, 
ByVal str As String)
Declare Function mecab_new2 Lib "libmecab.dll" (ByVal arg As String)

Sub MorphTest()

    Dim SouceText As String

    SouceText = "すもももももももものうち"
    PtrMecab = mecab_new2(SouceText)
    Debug.Print mecab_sparse_tostr(PtrMecab, SouceText)

End Sub
' コードここまで。**********************


疑問点は、

(1) Declareステートメントで宣言する際、引数の型および戻り値の型に何を使用すればよいか?
(2) ByRef(参照渡し), ByVal(値渡し)どちらを使うのが適切なのか?

以上2点です。


解決に必要な知識はMeCabから少しそれてしまっている気もしますが。。。

アドバイス等いただければ幸いです。 




mecab-users メーリングリストの案内
Back to archive index