クリップボードにあるBMP画像をファイルに保存するには


jk010001  2005-05-18 01:23:30  No: 121698

初めての利用です。
エクセルのシート上にあるピクチャーオブジェクトをイメージファイルとして保存したいのですが簡単に解決する方法をご存知の方がいらしたら教えてください。

仕様としてEXCEL VBAのみで解決したいのですが、いかがなものでしょうか?

開発環境は、WinXP Pro Excel2002です。


jk010001  2005-05-18 01:29:58  No: 121699

すみません。ちょっと説明が足りませんでした。
現在 モジュール内でピクチャーオブジェクトよりビットマップ情報をクリップボードにコピーしその情報を元にビットマップイメージファイルを作成しようと考えています。済みませんがよろしくお願いします。


特攻隊長まるるう  2005-05-18 02:43:08  No: 121700

クリップボード関連はVBAのヘルプで『クリップボード』
で検索すればいいだけでは?。
画像の保存は SavePicture を使ってみて下さい。


jk010001  2005-05-18 02:54:19  No: 121701

レス有難うございす。
私の認識不足かもしれませんが、VBA上ではVB6上にあるClipboardオブジェクトが存在しない為、

 Dim pic As IPictureDisp

 Set pic = Clipboard.GetData
 SavePicture(pic,"C:\tmp\image.bmp")

のような処理ができません。
現在 API関数を使用してビットマップ情報を取得するようにしていますが、ビットマップのハンドルが取得できるだけでそれからイメージファイルを作成するとなると、ちょっと現在の状況では厳しいのです。
済みませんが何かありましたらお願いします。


特攻隊長まるるう  2005-05-18 17:57:27  No: 121702

えっと(^^;)できたら言われた通りの事をそのまま一通り実行した上で
質問して下さい。
>私の認識不足かもしれませんが、VBA上ではVB6上にあるClipboardオブジェクトが存在しない為、
ボクは Clipboard オブジェクトが存在するとは書いてません。ヘルプで
調べて下さいと書いてあるのは、ヘルプで調べないと分からないからです。
エクセルを開き[Alt]+[F11]でVBAのエディタを開きます。その状態で
[F1]キーでヘルプを表示します。[質問]タブに『クリップボード』と入れて
検索して下さい。クリップボードを操作するメソッドが検索されます。


jk010001  2005-05-18 21:08:42  No: 121703

特攻隊長まるるう様、丁寧な回答に対し先走った回答をしたことをお許しください。すみません。

エクセルのVBA IDEでクリップボードについての質問を実行するといくつかのメソッドが返ってきました。
内容を確認してみるとクリップボードにあるデータの形式を列挙するものや、クリップボードの内容をDataObjectへコピーするものなどでした。
DataObjectについて調べてみるとエクセル2002ではテキスト形式のデータのみ利用できるとありました。
現在の状況でクリップボード内のピクチャ形式データ扱う方法をエクセルVBAヘルプで見つける事ができませんでした。


特攻隊長まるるう  2005-05-18 22:35:54  No: 121704

>内容を確認してみるとクリップボードにあるデータの形式を列挙するものや
はい、そこで気にならなければなりません。各要素を形式の種類を表す定数に何があるか?
>xlClipboardFormatBitmap
ビットマップがあります。…とすればこれを確認してビットマップを
操作する方法があっても不思議ではありません。
検索します。
http://www.google.com/search?hl=ja&q=xlClipboardFormatBitmap&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=


特攻隊長まるるう  2005-05-18 23:02:35  No: 121705

…あ、というかクリップボードから直接ファイルに保存するつもりなんでしたっけ?
シートに貼り付けて保存する事になるような気も…(汗)
>エクセルのシート上にあるピクチャーオブジェクトをイメージファイルとして保存したい
SavePicture を先に調べてみて下さい。↓いくつかのリンク先を組み合わせればできそう
な感じ。
http://www.google.com/search?q=%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%E3%80%80SavePicture+%E3%81%AF&hl=ja&lr=&start=10&sa=N


jk010001  2005-05-18 23:35:36  No: 121706

>…あ、というかクリップボードから直接ファイルに保存するつもりなんでしたっけ?
はい、そうです。
>SavePicture を先に調べてみて下さい。
ちょっと調べてみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加