2

Qt 5 を使用して、Microsoft Excel 2010 のセル コメント (フォント、太字の変更など) をフォーマットしたいと考えています。

次のコードを使用して、セルにコメントを追加できます。

QAxObject* cellRange = m_activeWorksheet->querySubObject("Cells(int, int)", row, col);
cellRange->dynamicCall("AddComment(const QVariant&)", comment);

セル コメントの AutoSize プロパティを設定することもできます。

QAxObject* axComment = cellRange->querySubObject("Comment");
QAxObject* shape = axComment->querySubObject("Shape");
shape->querySubObject("TextFrame")->setProperty("AutoSize", autosize);

しかし、TextFrame.Characters.Font.Bold などの「より深い」コメント プロパティを変更することはできません。

セルコメントを設定した後、コマンド

shape->querySubObject("TextFrame") 

ゼロ以外のポインターを返しますが、

shape->querySubObject("TextFrame")->querySubObject("Characters")

NULL を返します。

を使用してセルのコメントをフォーマットするにはどうすればよいQAxObjectですか? QAxObjectによってアクセス可能なさまざまな のプロパティ/サブオブジェクトの説明はありますQAxObjectか?

次のコードは効果がありません。

shape->setProperty("AutoShapeType", 5);
4

2 に答える 2

2
  1. おそらく問題は、 TextFrame にプロパティ がないことCharactersです。代わりにメソッド Charactersがありますが、完全な署名は

    Characters(Start, Length)
    

    Qt docsは、完全な署名を指定する必要があると述べているため、おそらく値をクエリする必要があります

    shape->querySubObject("TextFrame")->querySubObject("Characters(Start,Length)")
    
  2. AutoShapeTypeには設定できません5AutoShapeTypeMsoAutoShapeType型であり、指定された値のみが許可されます。

于 2014-10-24T17:05:47.027 に答える