Я не владею 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: Нет такого свойства в d:\gakwandi.docx [unknown] Кандидаты:....., который предполагает, что я каким-то образом неправильно интерпретирую синтаксис. Я прыгал кем-то более опытный с программированием окон, hepl указывает, что я могу делать неправильно.
Благодарю.
Я как мог скомпоновать часть кода, чтобы получить то, что я хотел. Просто оставив его здесь, если кто-то еще должен сделать то же самое. Спасибо снова 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)");
В Word VBA вы можете проверить количество страниц таким образом:
? ActiveDocument.Range.Information(wdNumberOfPagesInDocument)
или
? ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
Я не знаю, как добавить его в синтаксис C++, но надеюсь, что вы сможете понять это самостоятельно.