[リストへもどる]
一括表示

投稿時間:2003/06/03(Tue) 17:05
投稿者名:ごも
Eメール:
URL :
タイトル:
ピクチャーボックスの内容がコピーできない
はじめまして。 いつも拝見させていただいています。

早速ですが、質問させていただきます。
現在ピクチャーボックス上にlineやFlexdGridなどを配置しています。
 そのピクチャーボックスの内容をエクセルなどにコピーをして貼り付けたいと思っています。

 しかし、Pictureオブジェクトを使用してクリップボードにデータを落とそうとしても
画像データがクリップボードに入っていきません。
 また、Imageコントロールを使用するとlineなどはうまくクリップボードに入りますが
FlexdGridやLblなどが表示されないで困っています。

なんとか、このピクチャーボックス上にある画像やデータをうまくコピーして
エクセルなどに貼り付ける方法はないでしょうか?

よろしくご教授お願いします。

投稿時間:2003/06/03(Tue) 20:18
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ピクチャーボックスの内容がコピーできない
PictureBox の AutoRedraw プロパティを True にしていますか?
しているのであればクリップボードにコピーしている方法を提示して下さい。

投稿時間:2003/06/04(Wed) 09:28
投稿者名:ごも
Eメール:
URL :
タイトル:
Re^2: ピクチャーボックスの内容がコピーできない
ピクチャーボックスにLineで描く線とFlexdGridで表示した内容は
別モジュールで書いています。
クリップボードにコピーをするのは標準モジュール内で行っており
単純に

Public Sub Clip_Sub()
    Pictfrm.PictBox.AutoRedraw = True
    
    '---クリップボードクリア---
    Clipboard.Clear
  
    '---クリップボードにコピー---
    Clipboard.SetData Pictfrm.PictBox.Picture

End Sub

とだけ書いています。
本来なら「Clipboard.SetData」にデータが入ってくっるはずですが
入っているデータは"0"がかえってきてしまいます。

Clipboard.SetData Pictfrm.PictBox.Imageにすると
Lineで描いた部分だけクリップボードに入って
Gridや、Lblで表示した部分はクリップボードに反映されていません。

よろしくお願いします。

投稿時間:2003/06/04(Wed) 10:41
投稿者名:nanashi
Eメール:
URL :
タイトル:
Re^3: ピクチャーボックスの内容がコピーできない
> 本来なら「Clipboard.SetData」にデータが入ってくっるはずですが
> 入っているデータは"0"がかえってきてしまいます。

PictureBoxのPictureプロパティとImageプロパティの違いは
MSDNに載っていたと思うので確認してください。
たぶんこの場合はImageを使うのが正解だと思います。

> Clipboard.SetData Pictfrm.PictBox.Imageにすると
> Lineで描いた部分だけクリップボードに入って
> Gridや、Lblで表示した部分はクリップボードに反映されていません。

FlexGridやLabelのデータは直接PictureBoxに書いているのでしょうか?
であれば普通にクリップボードに取得できます。
まさかとは思いますが、PictureBoxの上にFlexGridやLabelオブジェクトを
乗せてるだけじゃないですよね?

投稿時間:2003/06/04(Wed) 11:19
投稿者名:ごも
Eメール:
URL :
タイトル:
Re^4: ピクチャーボックスの内容がコピーできない
> PictureBoxのPictureプロパティとImageプロパティの違いは
> MSDNに載っていたと思うので確認してください。
> たぶんこの場合はImageを使うのが正解だと思います。

確認してみます。

> FlexGridやLabelのデータは直接PictureBoxに書いているのでしょうか?
> であれば普通にクリップボードに取得できます。
> まさかとは思いますが、PictureBoxの上にFlexGridやLabelオブジェクトを
> 乗せてるだけじゃないですよね?

そのまさかをやっています。
PictureBoxにそのままLblやGridを貼り付けての作業です。

投稿時間:2003/06/04(Wed) 11:22
投稿者名:Say
Eメール:
URL :
タイトル:
Re^4: ピクチャーボックスの内容がコピーできない
>>>現在ピクチャーボックス上にlineやFlexdGridなどを配置しています。
>>> そのピクチャーボックスの内容をエクセルなどにコピーをして貼り付けたいと思っています。

> まさかとは思いますが、PictureBoxの上にFlexGridやLabelオブジェクトを
> 乗せてるだけじゃないですよね?

元質問をそのまま解釈すれば、その「まさか」でしょう。(^_^;

PictureBox上に配置されたコントロールはPictureBoxとは別物ですから、
Image/Pictureプロパティに反映されません。
「見た目どおりの」画像をExcel上に貼り付けたかったら、
一旦keybd_event(API)などを用いて画面キャプチャーしてください。

FlexGrid上のデータをExcel Shhetのセル上に反映させたいのなら、
ループで回して地道にコピーしてください。

投稿時間:2003/06/04(Wed) 15:00
投稿者名:ごも
Eメール:
URL :
タイトル:
解決)ありがとうございました。 
> PictureBox上に配置されたコントロールはPictureBoxとは別物ですから、
> Image/Pictureプロパティに反映されません。
> 「見た目どおりの」画像をExcel上に貼り付けたかったら、
> 一旦keybd_event(API)などを用いて画面キャプチャーしてください。
>
> FlexGrid上のデータをExcel Shhetのセル上に反映させたいのなら、
> ループで回して地道にコピーしてください。

Sayさん、ありがとうございます。

上記のとおり、一度クリエイト領域だけ画面キャプチャを行い
それをクリップボードに反映させて、Excelシートに貼り付けしました。

しかし、見た目もイマイチなので(笑)、少し、時間ができたらGridデータを
Excelシートに反映させるやり方をとります。

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