1

私は VBA に精通していませんが、Microsoftのドキュメント フォーム msdn を使用して、Word ドキュメントのページ数を取得する必要があります。以下のスニペットのようなことを試しました。

 mWordDoc=new CustomQAxWidget("d:\\gakwandi.docx",0);

 QAxObject* selection = mWordDoc->querySubObject( "Selection" );

 QAxObject* pageNumbers = selection ->querySubObject( "PageNumbers" );

 int numberOfPages = pageNumbers->property("Count").toInt();

しかし、QAxBase::dynamicCallHelper: PageNumbers: No such property in d:\gakwandi.docx [unknown] Candidates are:..... のようなエラーが発生します。これは、どこかで構文が間違っていることを示唆しています。 Windowsプログラミングの経験が豊富な人は、私が間違っている可能性があることを指摘してくれるでしょう。

ありがとう。

4

2 に答える 2

1

私は自分が望むものを得るためにコードをまとめることができました.他の誰かが同じことをする必要がある場合に備えて、ここに残しておいてください.KazJawに感謝します.あなたの入力は本当に役に立ちました.

QAxObject*  word = new QAxObject("Word.Application", this);

//2.OPEN THE DOCUMENT
QAxObject*    doc = word->querySubObject("Documents");
doc->dynamicCall("Open(QVariant)", "d:\\gakwaya11.docx");
doc->setProperty("Visible",false);
//3.GET TO THE CONTENTS
QAxObject * activeDocument=word->querySubObject("ActiveDocument");

QAxObject * content=activeDocument->querySubObject("Content");

int mNumberOfPages = content->dynamicCall("Information(wdNumberOfPagesInDocument)").toInt();

//doc->dynamicCall("SaveAs (const QString&)", QString("d:\\karamage.docx"));
doc->dynamicCall("Close (boolean)", false);
word->dynamicCall("Quit (void)");
于 2013-10-11T03:05:08.737 に答える