喫茶XRAYトップページ

[スレッド全体
]

[806] ワードへのbitmap貼り付け方法について返信 削除
2006/5/31 (水) 09:28:22 まるじ
XRAYさん、こんにちは。
初めて投稿します"まるじ"といいます。
いつも有意義なコンポーネントの紹介、素晴らしいです。
ワード操作にお詳しいと思いご相談させていただきます。

あらかじめ文章を入れたWordを開いて、ClipbrdのBitmapを
貼り付けたいのですが、うまくいきません。
元の文章が消されてしまい図だけ張り付きます。
(ワードの"元に戻すボタン"で書き込んであった文章は戻せます。)
開いた文章を消さずにBitmapを貼り付ける方法をご存知であれば
ご教授いただければ幸いです。

ただ貼り付けてるからダメなんですよね・・・。

//usesにComObj追加
------------------------------------------
  private
   WApp, Word : Variant;
  end;

const
  wdPasteBitmap = $00000004;
var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
 WApp  := CreateOleObject('Word.Application');
 Word  := WApp.Documents.Open('"C:\□□\□□\sample.doc"');
 Word  := Word.Content.PasteSpecial(,,,,wdPasteBitmap);
 WApp.Visible := True;
end;

どうぞよろしくお願いいたします。

[807] Re:ワードへのbitmap貼り付け方法について返信 削除
2006/5/31 (水) 21:10:29 Mr.XRAY
▼ まるじさん、こんにちは。

> 元の文章が消されてしまい図だけ張り付きます。
> (ワードの"元に戻すボタン"で書き込んであった文章は戻せます。)


まず、以下のことを教えて下さい。
(1) 開発Delphiのバージョン
(2) 開発Windowsのバージョンとワードのバージョン
(3) その図を貼付けた時に、ワードの文書のどの位置にどのくらい
    の大きさとなっているか。
    (例 用紙の横幅一杯とか、mmのサイズとか)
(4) その図を選択した時に、周囲のグラブ(サイズ調整用の四角形の
    色(塗りつぶしか白か)
(5) もし、その図形をマウスで移動できるなら、移動したら元の
    文章が見えるようになるのか。

それと、テストコードで気づいたこと。
(1) たとえテストでも生成したオブジェクトは破棄しておく方が
    いいでしょう。予期せぬ状態を招くことがあります。
(2) 同様に、もし、クリップボードから画像を取得できなかった場合も
    考えておく。
(3) Wordという予約語の変数は使用しない。問題が発生した場合、バグ
    取りが困難となります。

例えば以下の様に。

procedure TForm1.Button1Click(Sender: TObject);
var
     S: String;
begin
     S:='C:\AAA\Test.doc';
     WApp  := CreateOleObject('Word.Application');
     try
       AWord  := WApp.Documents.Open(S);
       AWord.Content.PasteSpecial(,,,,wdPasteBitmap);
       //ここでAWord:=AWord.Content...としてしまうと、
       //後でAWordが何を指しているか不明となってしまう。
       //必要であれば別の変数を用意する。
     except
     end;
     WApp.Visible := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
     //VarIsEmptyはDelphiのバージョンによっては使用不可?
     if not VarIsEmpty(WApp) then begin
       AWord :=unAssigned;
       WApp  :=unAssigned;
     end;
end;




[808] Re2:ワードへのbitmap貼り付け方法について返信 削除
2006/5/31 (水) 22:35:17 まるじ
XRAYさん、早速のご返事恐縮です。
以下、ご返事いたします。

> (1) 開発Delphiのバージョン

   D6 Personalを使用しています。

> (2) 開発Windowsのバージョンとワードのバージョン

   Win-XP HE です。

> (3) その図を貼付けた時に、ワードの文書のどの位置にどのくらい
>     の大きさとなっているか。
>     (例 用紙の横幅一杯とか、mmのサイズとか)


   左上の角(0.0だと思います)の位置に58%の大きさです。

> (4) その図を選択した時に、周囲のグラブ(サイズ調整用の四角形の
>     色(塗りつぶしか白か)

 
   何も色が付いているように見えないので白かもしれません・・。

> (5) もし、その図形をマウスで移動できるなら、移動したら元の
>     文章が見えるようになるのか。
>

   見えません。
   入れられている文字すべてが選択されて(?)貼り付けられる
   みたいで消されてしまっています。サンプルexeで図を貼り付けた
   あとに、ワードの元に戻すボタンを押すと図が消えて文字が出ます。

> それと、テストコードで気づいたこと。

   ありがとうございます。(実際に書き換えて試しました!)
   今後はご教示の内容で進めたいと思います。

ご返事が遅くなってすみません。よろしくお願いいたします。

 

[810] Re3:ワードへのbitmap貼り付け方法について返信 削除
2006/5/31 (水) 22:44:28 Mr.XRAY
▼ まるじさん
> > (5) もし、その図形をマウスで移動できるなら、移動したら元の
> >     文章が見えるようになるのか。
> >
>    見えません。
>    入れられている文字すべてが選択されて(?)貼り付けられる
>    みたいで消されてしまっています。サンプルexeで図を貼り付けた
>    あとに、ワードの元に戻すボタンを押すと図が消えて文字が出ます。


これをもう一度確認して下さい。というのは、
ワードの元に戻すというのは、動作を一つ戻すだけです。
つまり、この場合、クリップボードからの貼付けを戻すわけです。
それを戻して、文章が見えるということは、図を貼付けた後も文字は
消えていないことになります。

図はマウスで移動できるのでしょうか。もし、できなかったら、
図をクリックし、ポップアップメニュー(右クリック)で
   [図の書式]
   [レイアウト]タブをクリック
   [背面]を選択して[OK]
これで図が移動します。移動できたら、図サイズも極力小さくして
みて下さい。


[812] Re4:ワードへのbitmap貼り付け方法について返信 削除
2006/5/31 (水) 22:56:28 まるじ
> > (5) もし、その図形をマウスで移動できるなら、移動したら元の
> >     文章が見えるようになるのか。


    図を貼り付けた後、文字は消えてしまいます。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82