VC++を用いてワード形式で保存 – プログラミング – Home

VC++を用いてワード形式で保存
 
通知
すべてクリア

[解決済] VC++を用いてワード形式で保存


mac
 mac
(@mac)
ゲスト
結合: 22年前
投稿: 37
Topic starter  

はじめまして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


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> Anchorというラップクラスは存在しませんでした

Anchor はクラス名ではなくて、単なる引数名です。
Anchor の型は、_Document.Range で取得するようですが。
Office オートメーションには詳しくないので、省略したい場合にどうやって書けばいい
のかはわかりません。
どなたか詳しい方、フォローお願いいたします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> Anchor の型は、_Document.Range で取得するようですが。

マチガエマシタ。
正しくは「Anchor の型は Range で、取得するには _Document.Range を使うようです
が」です。読み替えてください。


返信引用
mac
 mac
(@mac)
ゲスト
結合: 22年前
投稿: 37
Topic starter  

シャノン様、回答ありがとうございます。
そして返事が遅くなって申し訳ございません。

引数がAnchorで指定されている部分にRangeを渡したら
うまく動作しました。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました