vc++のAPI(dll)の引数をVBAでうけとる
Excelで開発しなければならない事情があり、
vc++のAPIが持っている関数を
ExcelVBAでコールしておりますが、エラー1041でExcelが強制終了してしまいます。
VBAからVisual C++にchar*型で渡し、ByRef String型でVBAにて受け取ります。
VCの関数の第四引数「char* 型/attribute_value」をVBAの「String 型/sValue」で受け取る際にエラーになっているようです。
VBAでcharに相当する変数型がないためと思われますが、何かよいアイデアがありましたらご教授願います。
--VC--
XDW_GetDocumentAttributeByName(h, attribute_name, &attribute_type, attribute_value, size, NULL);
--VBA--
<宣言部>
Public Declare Function XDW_GetDocumentAttributeByName Lib "C:\Users\○○○\Desktop\dwsdk710jpn\XDWAPI\DLL\xdwapi.dll" (ByVal lnghandle As Long, ByVal sName As String, ByRef lngType As Long, ByRef sValue As String, ByVal lngSize As Long, ByVal reserved As String) As Long
<呼び出し部>
Dim lngHandle As Long
Dim sName as String
Dim lngType As Long
Dim sValue As String
Dim lngSize as Long
Dim tmpSize as Long
lngSize = 0
sName = "keiyaku"
tmpSize = XDW_GetDocumentAttributeByName(lngHandle, sName, sType, sValue, lngSize, vbNullString)
XDW_GetDocumentAttributeByName lngHandle, sName, sType, vbNullString, tmpSize, vbNullString
degug.print sValue
お礼
ご回答ありがとうございました。