アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6.0でエクセルを操作するプログラムを作成していますが、あらかじめエクセル上にイメージを作成して
そこに指定した画像を入れるようなプログラムを作成しているのですが上手くできません。
OLEObjectsを使用してイメージを選択する所までは
出来たのですが、そこから指定したファイルの画像を貼り付ける文章がわかりません。

教えて下さい、宜しくお願いします。

A 回答 (2件)

>事前のセットとはどういうことでしょうか?



「OLEObjectsを使用してイメージを選択する所までは出来た」とあったので、その辺は理解済みだと思ったのですが・・・(^^;

OLEObjectsはExcelワークシート内にあるOLEObjectの集合(Collection オブジェクト)ですよね。
# WorksheetとWorksheet「s」オブジェクトの関係と一緒です

例えばExcelマクロで

Dim obj As OLEObject

For Each obj In ActiveSheet.OLEObjects
Debug.Print obj.Name
Next obj

として実行してみましょう。イミディエイトウインドウにコントロール名が(あれば)表示されているはずです。

このケースであれば、例えばSheet1にImageコントロールが1個だけあるなら

WorkSheets("Sheet1").OLEObjects(1)
または
WorkSheets("Sheet1").OLEObjects("Image1")

がImageコントロールを指すと思います。

ですので回答したコードを補完すると

dim objOLE as OLEObject

set objOLE = WorkSheets("Sheet1").OLEObjects("Image1")

objOLE.Object.Picture=LoadPicture("c:\test.bmp")

という感じでしょうか。
ちなみに、これはExcel VBAだとそのまま動きますがVB6ではそのままでは動きませんよ(^^;
# WorkSheets("Sheets")の前にWorkbookオブジェクトが必要です
    • good
    • 0

>OLEObjectsを使用してイメージを選択する所までは出来た



Imageコントロールの実態は、OLEObjectのObjectプロパティで参照できます。

こんな感じです。

'事前にImageを選択してobjOLEにセットしてあるものとする
dim objOLE as OLEObject

objOLE.Object.Picture=LoadPicture("c:\test.bmp")

この回答への補足

回答有難う御座います。

試してみたのですがエラーが発生してしまいました。

>'事前にImageを選択してobjOLEにセットしてあるもの>とする
>dim objOLE as OLEObject

>objOLE.Object.Picture=LoadPicture("c:\test.bmp")

とあるのですが、すみません、
VB初心者なのでよくわからないのですが、
事前のセットとはどういうことでしょうか?

もしよろしければ教えて頂けないでしょうか、
宜しくお願いします。

補足日時:2005/06/02 23:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!