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