構文
BOOL GetTable(VARIANT* celltext, long* nRows, long* nColumns, long* nTextHeight, long* nSpace,
double* xPos, double* yPos)
(JavaScript用) string GetTableJS();
カレントのオブジェクトが表オブジェクトの場合、その情報を取得します。
パラメータ
celltext
表の中の文字列の配列。左上から右下に向かって順に並びます(まず1行目を左から右へ、次に2行目を左から右へ)。
型は VT_VARIANT | VT_ARRAY にしてください。
型は VT_VARIANT | VT_ARRAY にしてください。
nRows
行数。
nColumns
桁数。
nTextHeight
文字の高さ。0.1mm単位(1:100の縮尺で出力したときのサイズ)。
nSpace
文字の余白。0.1mm単位。
xPos
表の左上のX座標。
yPos
表の左上のY座標。
戻り値
表オブジェクトの情報を取得できた場合 0 以外を返します。できなかった場合は 0 を返します。
使用例
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
// 列挙する
long lRet = m_MadoriDoc->GetTopObject();
if (lRet == 0) AfxMessageBox(TEXT("何もない"));
while (lRet)
{
ULONG uType = m_MadoriDoc->GetCurrentObjectType();
short nLayer = m_MadoriDoc->GetCurrentObjectLayer();
CString strMsg;
if (uType == 67) // 表
{
VARIANT celltext;
long nRows, nColumns, nTextHeight, nSpace;
double xPos, yPos;
celltext.vt = VT_VARIANT | VT_ARRAY;
celltext.parray = NULL;
m_MadoriDoc->GetTable(&celltext, &nRows, &nColumns, &nTextHeight, &nSpace, &xPos, &yPos);
ULONG uCells = 0;
if (celltext.parray)
uCells = celltext.parray->rgsabound[0].cElements;
CString strMsg;
strMsg.Format(
TEXT("Table cells[%d]rows[%d]columns[%d]textheight[%d]space[%d]xPos[%lf]yPos[%lf]"),
uCells, nRows, nColumns, nTextHeight, nSpace, xPos, yPos);
AfxMessageBox(strMsg);
if (uCells > 0)
{
VARIANT * pVar;
SafeArrayAccessData(celltext.parray, (void**)&pVar);
for (ULONG u = 0; u < uCells; u++)
{
strMsg.Format(TEXT("CellText %u[%s]"), u, pVar[u].bstrVal);
AfxMessageBox(strMsg);
}
SafeArrayUnaccessData(celltext.parray);
}
if (celltext.parray) SafeArrayDestroy(celltext.parray);
}
lRet = m_MadoriDoc->GetNextObject();
}
// JavaScript sample
var doc = new CMadoriDoc();
var lRet = doc.GetTopObject();
while(lRet){
var uType =doc.GetCurrentObjectType();
switch (uType){
case 67: // table
var data = eval( doc.GetTableJS() );
var msg = " Result[" + data.Result + "]";
alert(msg);
msg = " Rows[" + data.Rows + "]";
alert(msg);
msg = " Columns[" + data.Columns + "]";
alert(msg);
msg = " TextHeight[" + data.TextHeight + "]";
alert(msg);
msg = " Space[" + data.Space + "]";
alert(msg);
msg = " xPos[" + data.XPos + "]";
alert(msg);
msg = " yPos[" + data.YPos + "]";
alert(msg);
var nCells = data.CellText.length;
alert( nCells );
for( var i=0 ; i < nCells ; i++ )
{
msg = "CellText:[" + data.CellText[i] + "]";
alert( msg );
}
break;
}
lRet = doc.GetNextObject();
}