初めて投稿させていただきます。
質問なのですが、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
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を移動させとかないと、そうなるでしょう。
解決しました。
Sayさんありがとうございました。
ツイート | ![]() |