tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルVB6.0からExcleへ
記事No11672
投稿日: 2008/03/06(Thu) 11:02
投稿者TR
VB6.0のフォームを使ってExcelのフォーマットへ記入するプログラムを作って
います。
ExcelにImageコントロールを配置し、そこにVBにある画像を表示させたいので
すが、どうやっても出来ません;;

Sht.Pictures.Insert(イメージパス).Select
Sht.OLEObjects("Image1").Picture = LoadPicture(イメージパス)

2行目でエラーが発生します。

どうしたらImageコントロールに収まるのかご指導ください。

[ツリー表示へ]
タイトルRe: VB6.0からExcleへ
記事No11675
投稿日: 2008/03/06(Thu) 11:46
投稿者魔界の仮面弁士
> Sht.OLEObjects("Image1").Picture = LoadPicture(イメージパス)

(1) フォーム上に Image コントロールが貼ってあって、
 かつ、その名前が Image1 になっているでしょうか。

(2) OLEObject に、Picture というプロパティはありません。
 もし、Image コントロールの Picture プロパティを使うのであれば、
 .Picture ではなく、.object.Picture という構文になります。

(3) VB6 で LoadPicture した画像は、Excel 側では読めません。
 (VB.[Global].LoadPicture でも、stdole.StdFunctions.LoadPicture でも)
 Excel VBA 側に、LoadPicture するためのコードを用意しておき、それを
 VB6 側から Run する事で読み込ませるか、または Image コントロールを使わず、
 Picture オブジェクトで代用するなど方法で対応してみてください。

[ツリー表示へ]
タイトルRe^2: VB6.0からExcleへ
記事No11676
投稿日: 2008/03/06(Thu) 12:02
投稿者TR
魔界の仮面弁士さん回答ありがとうございます。

> (1) フォーム上に Image コントロールが貼ってあって、
>  かつ、その名前が Image1 になっているでしょうか。

Excelのフォーマット上にImageコントロールが貼ってあります。
名称はImage1です。

> (2) OLEObject に、Picture というプロパティはありません。
>  もし、Image コントロールの Picture プロパティを使うのであれば、
>  .Picture ではなく、.object.Picture という構文になります。

Sht("Image1").Object.Picture
という形でも試してみましたが、やはりエラーでした;;

> (3) VB6 で LoadPicture した画像は、Excel 側では読めません。
>  (VB.[Global].LoadPicture でも、stdole.StdFunctions.LoadPicture でも)
>  Excel VBA 側に、LoadPicture するためのコードを用意しておき、それを
>  VB6 側から Run する事で読み込ませるか、または Image コントロールを使わず、
>  Picture オブジェクトで代用するなど方法で対応してみてください。

>  Excel VBA 側に、LoadPicture するためのコードを用意

すみません…そのコードをどのように用意するのかすら分からない状態です。
Pictureにしなかった理由は、Imageだとどんな画像でも縮小してもらえるからです。

[ツリー表示へ]
タイトルRe^3: VB6.0からExcleへ
記事No11677
投稿日: 2008/03/06(Thu) 12:11
投稿者花ちゃん
ここのExcel関係の下記ではだめなのですか?
http://hanatyan.sakura.ne.jp/vbhlp/Excel12.htm

[ツリー表示へ]
タイトルRe^4: VB6.0からExcleへ
記事No11678
投稿日: 2008/03/06(Thu) 12:36
投稿者TR
> ここのExcel関係の下記ではだめなのですか?
> http://hanatyan.sakura.ne.jp/vbhlp/Excel12.htm

はい;;
シートには反映するのですが、Imageコントロールに表示することは出来ませんでした。

[ツリー表示へ]
タイトルRe^5: VB6.0からExcleへ
記事No11679
投稿日: 2008/03/06(Thu) 13:34
投稿者花ちゃん
> > ここのExcel関係の下記ではだめなのですか?
> > http://hanatyan.sakura.ne.jp/vbhlp/Excel12.htm
>
> はい;;
> シートには反映するのですが、Imageコントロールに表示することは出来ませんでした。

3方法のの内の一番下に書いてある方法は Image1 に表示しておりますが。

[ツリー表示へ]
タイトルRe^6: VB6.0からExcleへ
記事No11681
投稿日: 2008/03/06(Thu) 13:44
投稿者TR
> 3方法のの内の一番下に書いてある方法は Image1 に表示しておりますが。

xlApp.Run "image1", イメージパス

とやってみましたが、

オブジェクト変数または With ブロック変数が設定されていません。

が発生してしまいました。

[ツリー表示へ]
タイトルRe^6: VB6.0からExcleへ
記事No11683
投稿日: 2008/03/06(Thu) 14:01
投稿者TR
> 3方法のの内の一番下に書いてある方法は Image1 に表示しておりますが。

xlApp.Run "Test.xls!SetPicture", myPath & "image.jpg"

というステートメントを

xlApp.Run "Test.xls!SetPicture", イメージパス

に変えてみましたが、やはり同じエラーが発生してしまいます;;

[ツリー表示へ]
タイトルRe^7: VB6.0からExcleへ
記事No11684
投稿日: 2008/03/06(Thu) 14:05
投稿者TR
やはり、同じようにやっても表示されません。
いろいろご指導ありがとうございました。
何が原因になっているか調べてみます!

[ツリー表示へ]
タイトルRe^8: VB6.0からExcleへ
記事No11689
投稿日: 2008/03/06(Thu) 16:22
投稿者neptune
こういうの書くの嫌なんですが、

なぜ、3つもマルチするんですか?
mougで指摘されて、なぜこちらをそのままにしておくんですか?
ここもマルチは厳しく禁止されていますよ。

[ツリー表示へ]
タイトルRe^9: VB6.0からExcleへ
記事No11704
投稿日: 2008/03/07(Fri) 11:49
投稿者TR
管理人様、neptune様

結果的にマルチになってしまい大変申し訳ありませんでした。

[ツリー表示へ]