- 日時: 2008/02/11 21:21
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:技術情報,VBA,グラフ,クリップボード,ビットマップファイル,Metafile * ***********************************************************************************
Excel2007 の VBA の ChartObject.CopyPicture メソッドがビットマップ形式を クリップボードにコピーしない
下記に投稿している Excelのグラフをクリップボード経由でPictureBoxに貼付 を VB2005 Excel 2007 の環境で試していたら、画像が表示されない。
MyChart1.CopyPicture(Appearance:=Excel.XlPictureAppearance.xlScreen, _ Size:=Excel.XlPictureAppearance.xlScreen, _ Format:=Excel.XlCopyPictureFormat.xlBitmap)
http://hanatyan.sakura.ne.jp/dotnet/Excel04.htm
そこで、クリップボードに入っている Format 形式を調べてみると下記の5種類となっていた。 Preferred DropEffect InShellDragLoop EnhancedMetafile MetaFilePict
念のため、Excel 2002 Excel 2003 等で調べてみると下記のように Bitmap 形式で入っていた。 System.Drawing.Bitmap Bitmap DeviceIndependentBitmap Format17 Link
検索してみたが、Microsoft のサポート技術情報等は見当たらなかったが、どうもバグの ようである。
VB6.0 で扱った場合は、クリップボードで Metafile が扱えるから、特に問題がないのだが .NET 系になってから、Clipboard クラスは、Metafile をサポートしなくなったのでやっかい である。(同じ会社の製品なのに) Win32 API 関数の厄介になる必要が出てくる。
|