VB→EXCELで画像を表示するには?

解決


MAXI  2003-01-10 02:26:45  No: 76775

初めて投稿させていただきます。
質問なのですが、OSがWIN2KでVB6.0SP5+EXCEL2Kの環境で、
あらかじめEXCELに雛型のファイルを用意しておいて、
それに対してデータを出力して帳票を作成している処理があり、
セルに値をセットするのは問題無いのですが、
画像を表示するために用意しておいたImage1(複数表示したいので最大でImage8まであります)に、
下記のソースのようにLoadPicture関数を実行すると、

'Picture' メソッドは失敗しました: 'IImage' オブジェクト

という内容のメッセージが表示されうまくいきません。
VBからEXCELに出力する場合、LoadPicture関数は使用できないのでしょうか?

ソース
objXls.Worksheets(1).Image1.Picture = LoadPicture("C:\a.jpg")

別の手段として、クリップボードに一度画像を保存し、
SendKeys関数(SendKeys "^v")を使用しての貼り付けを考えたのですが、
画像の表示はうまくいきますが複数の画像を貼り付けを行なった場合に、同じ場所に表示されました。

VB→EXCELに画像の表示をうまくできる方法をご存知の方がいらしゃればお教え下さいm(_ _)m


Say  2003-01-10 14:22:23  No: 76776

objXls.Worksheets(1).Image1.Picture はExcelのオブジェクトで、
LoadPicture("C:\a.jpg")はVBの関数ですから
うまくいかないのは当然のような・・・。
Excel上で実行させればうまくいきます。

xlsファイルに

Sub LoadPictureEX(jpgFile As String)
Sheet1.Image1.Picture = LoadPicture(jpgFile)
End Sub

みたいなマクロ用意して、

VBから

wExcel.Run "LoadPictureEX", "C:\a.jpg"

するとか…

>同じ場所に表示されました。

ctrl + v を送るときにTabを送るか、
objXls.Worksheets(1).Shapes("Image1").Select
みたいな感じでFocusを移動させとかないと、そうなるでしょう。


MAXI  2003-01-14 20:39:05  No: 76777

解決しました。
Sayさんありがとうございました。


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

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






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