喫茶XRAYトップページ


[11081] エクセル:IDispatch型返信 削除
2017/4/11 (火) 15:20:05 Mr.XRAY
igy さんの名前を見て思い出したので (^^;
あまりおもしろくはないと思いますが...

[エクセルの指定したセルに画像を表示させるには?]
https://forums.embarcadero.com/thread.jspa?threadID=249026&tstart=0

でリンクのある http://blog.livedoor.jp/boon_net/archives/50713566.html
はエクセルのオブジェクトを OleVariant 型で扱っていますか,
srvers タブのコンポーネントを使うと,
図のように Pictures は IDispatch 型です.当然 Insert なんてメソッドはありません.
こういう場合はキャスト (型変換) が必要です.

Excel2000.pas 等にエクセルの Pictures, Picture というオブジェクトがありますが,
画像の挿入は,AddPicture が便利です.
(nagao さんは表示といっていますが,挿入すれば表示されます)

レスに具体的な記事へのリンクがあるのですぐ分かります.
MSDN の記事でも確認できますが,位置とサイズを引数で設定できます.


しつこいですが.

>の行の中のInsertの所で未定義の識別子というエラーメッセージができます。

そりゃそうでしょうね.そういうエラーが出なかったら変です.

>なお、エクセルに表示させたい画像は、前もってビットマップフィルに変換することも可能ですが、表示サイズは
>指定できることを希望します。


前半はもったいぶっていますが,これはどちらかと言うと「依頼」ですね.
コード作成の注文でしょうか.
このもったいぶった文章が特徴ですね.
「慇懃無礼」度が増加しています.

しかし,何故に GemBox 社のスプレッドシートのオンラインヘルプなんだ ?
どうやって検索したら出てくるのか ?
それとも実際に使っているのか ? 謎である.

>にShapesプロパティは見当たらないのですが、なぜですか?

んなこと,誰も知らないって !!


[11082] Re:エクセル:IDispatch型返信 削除
2017/4/11 (火) 15:38:54 Mr.XRAY
> 図のように Pictures は IDispatch 型です.当然 Insert なんてメソッドはありません.
> こういう場合はキャスト (型変換) が必要です.


オブジェクトの型の定義が用意されていない場合は,
OleVariant 型て扱えます.
例えば,Excel2000.pas を使用していると,Excel 2000 より後のエクセルに実装
された機能の定義はありませんから,必然的に OleVariant 型で扱うしかありません.

# で,どうなったんだろう ?


INCM/CMT
Cyclamen v3.82