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から少しそれてしまっている気もしますが。。。 アドバイス等いただければ幸いです。