Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13574 / 13644 ツリー ←次へ | 前へ→

【4653】VARIANT型のエクセルで表示について matuo 03/4/1(火) 12:47 質問
【4685】Re:VARIANT型のエクセルで表示について りん 03/4/3(木) 8:44 発言
【4710】Re:VARIANT型のエクセルで表示について matuo 03/4/3(木) 14:03 発言
【4733】Re:VARIANT型のエクセルで表示について ichinose 03/4/3(木) 23:21 発言
【4773】Re:VARIANT型のエクセルで表示について matuo 03/4/6(日) 4:11 お礼

【4653】VARIANT型のエクセルで表示について
質問  matuo  - 03/4/1(火) 12:47 -

引用なし
パスワード
   はじめまして、松尾と申します
ちょっと煮詰まってしまいまして、よろしければご助言
を頂きたく投稿しました

やりたい事としましては、
SQLサーバのIMAGE型のレコードににあげた
画像データを、エクセルでユーザーフォームや
ピクチャーボックスを使わずにエクセルのセルに
(普通に貼り付けるフロート画像として)表示したいのです

一応、SQLサーバーから画像をバリアント型に変換した
ものに関しては、ダウンロードできたのですが
そこから、クリップボードに
APIの
Registered Clipboard Formatsを使用して
VARIANT型を登録し、
setclipboarddataで、データを貼り付けるところ
までは、出来ているのですが、
VBAのPASTE関数を使って、貼り付ける事が
できません。

解決する方法は、どのようなものでしょうか?
ご教授くださいませんでしょうか

また、ほかにもっといい方法(Registered Clipboard Formatsを使用する)
が、あれば、よろしくお願いします。

環境は、
EXEL2000、WIN2000です

【4685】Re:VARIANT型のエクセルで表示について
発言  りん E-MAIL  - 03/4/3(木) 8:44 -

引用なし
パスワード
   matuo さん、おはようございます。

>一応、SQLサーバーから画像をバリアント型に変換した
>ものに関しては、ダウンロードできたのですが
 ピクチャ(画像 BMPとかEMF)ではなくてバリアント?

>VBAのPASTE関数を使って、貼り付ける事が
 PASTEは関数ではなくてメソッドです。
 ActiveSheet.Pasteでクリップボードの内容を現在表示しているシートのアクティブセルの位置に貼り付けますが、できないということでエラーメッセージがでるのですか?

【4710】Re:VARIANT型のエクセルで表示について
発言  matuo  - 03/4/3(木) 14:03 -

引用なし
パスワード
   りん さんご返信、ありがとうございます。

>>一応、SQLサーバーから画像をバリアント型に変換した
>>ものに関しては、ダウンロードできたのですが
> ピクチャ(画像 BMPとかEMF)ではなくてバリアント?

はい、VARIANT型でございます。
画像ファイルをSQLサーバー上のIMAGE型にデータを格納
していますので、格納する前に画像データをバリアント型の
配列に格納し、レコードセットをOPENした後
APPENDCHUNK()を用いてデータベースに格納しています。
そして、表示する際は、それをGETCHUNK()で取得して、
バリアント型の配列に格納し、拡張子の無いファイルを作成します。

そのファイルをPICTURE BOXなどでLOADPICTUREなどを用いると
正常に表示されます

しかし、シート上にクリップボード経由で貼り付けようと
すると、エラーが出て貼り付けられないのです。

>>VBAのPASTE関数を使って、貼り付ける事が
> PASTEは関数ではなくてメソッドです。
> ActiveSheet.Pasteでクリップボードの内容を現在表示しているシートのアクティブ>セルの位置に貼り付けますが、できないということでエラーメッセージがでるのですか?

はい、「型が合わない」という旨のエラーが出て貼り付けられないのです。

言葉足らずで、申し訳ありませんでした
よろしくお願いします。

【4733】Re:VARIANT型のエクセルで表示について
発言  ichinose  - 03/4/3(木) 23:21 -

引用なし
パスワード
   ▼matuo さん:
りんさん
こんばんは。
>画像ファイルをSQLサーバー上のIMAGE型にデータを格納
>していますので、格納する前に画像データをバリアント型の
>配列に格納し、レコードセットをOPENした後
>APPENDCHUNK()を用いてデータベースに格納しています。
>そして、表示する際は、それをGETCHUNK()で取得して、
>バリアント型の配列に格納し、拡張子の無いファイルを作成します。
>そのファイルをPICTURE BOXなどでLOADPICTUREなどを用いると
>正常に表示されます
LOADPICTUREで正常に表示されているんであれば、

  ActiveSheet.Pictures.Insert(作成した拡張子なしのファイル名)

ではどうですか?
クリップボード経由ではないですが・・・。

【4773】Re:VARIANT型のエクセルで表示について
お礼  matuo  - 03/4/6(日) 4:11 -

引用なし
パスワード
   ▼ichinose さん:

>ではどうですか?
>クリップボード経由ではないですが・・・。

はじめまして、アドバイスありがとうございます。
それと、お礼が遅くなりまして申し訳ありません

表示に関しましては、教えていただいたメソッドにより
表示することができました。

クリップボードに入れないと貼り付けれない
という固定観念にとりつかれていました。

そのメソッドひとつで表示できるとは、思いもしませんでした
まだまだ勉強不足でした。

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

13574 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free