はじめましてmacと申します。
VC++で作成したプロジェクトにmsword.9をインクルードして、
ワードの.doc形式でファイルを保存するプログラムを作成しています。
そこで、「テキストボックス」を追加するために以下のような
コードを追加しました。
ここから******************************
COleVariant vtOptional;
// ワードに接続
_Application m_cAppliWord.CreateDispatch(Word.Application);
// ワードを表示
m_cAppliWord.SetVisible(TRUE);
// ドキュメントオブジェクトをアプリケーションに結びつける
Documents m_cDocuments = m_cAppliWord.GetDocuments();
// ファイルの新規作成
_Document m_cDocWordFile = m_cDocuments.Add(COleVariant
(F:\\Test\\SaveWord\\word.dot),
&_variant_t(false), &_variant_t(true), &_variant_t(true));
Shapes cShapes = m_cDocWordFile.GetShapes();
Shape cShape = cShapes.AddShape(msoShapeRectangle, 10.0, 10.0, 20.0, 15.0,
vtOptional);
ここまで******************************
ですが、AddShapeの中で「型が一致しません」というエラーが発生して
しまい、テキストボックスが作成されません。
MSDNのヘルプを見たところ、6番目の引数をAnchorで、省略可能とありました。
msword9.h内を探しましたが、Anchorというラップクラスは存在しませんでした。
この引数には何を指定すればよいのでしょうか?
どなたかご教授お願い致します。
開発環境
WindowsXP VC++6.0 Office2000
> Anchorというラップクラスは存在しませんでした
Anchor はクラス名ではなくて、単なる引数名です。
Anchor の型は、_Document.Range で取得するようですが。
Office オートメーションには詳しくないので、省略したい場合にどうやって書けばいい
のかはわかりません。
どなたか詳しい方、フォローお願いいたします。
> Anchor の型は、_Document.Range で取得するようですが。
マチガエマシタ。
正しくは「Anchor の型は Range で、取得するには _Document.Range を使うようです
が」です。読み替えてください。
シャノン様、回答ありがとうございます。
そして返事が遅くなって申し訳ございません。
引数がAnchorで指定されている部分にRangeを渡したら
うまく動作しました。
ありがとうございました。