• 締切済み

VBでExcel操作する時の画像を入れる方法

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

みんなの回答

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.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オブジェクトが必要です

  • piyo2000
  • ベストアンサー率49% (144/293)
回答No.1

>OLEObjectsを使用してイメージを選択する所までは出来た Imageコントロールの実態は、OLEObjectのObjectプロパティで参照できます。 こんな感じです。 '事前にImageを選択してobjOLEにセットしてあるものとする dim objOLE as OLEObject objOLE.Object.Picture=LoadPicture("c:\test.bmp")

hiron_001
質問者

補足

回答有難う御座います。 試してみたのですがエラーが発生してしまいました。 >'事前にImageを選択してobjOLEにセットしてあるもの>とする >dim objOLE as OLEObject >objOLE.Object.Picture=LoadPicture("c:\test.bmp") とあるのですが、すみません、 VB初心者なのでよくわからないのですが、 事前のセットとはどういうことでしょうか? もしよろしければ教えて頂けないでしょうか、 宜しくお願いします。

関連するQ&A

  • VB2005でExcel2003とExcel2007

    初めまして、VB2005でExcelに出力するプログラムの開発を 行っているのですが、大変困っています。 どなたか教えて頂けないでしょうか。 VB2005の参照設定でMicrosoft Excel12.0 Object Library指定 してExcel2007をインストールしているパソコンでは Excelに出力できますがExcel2003を インストールしているパソコンではExcelに出力できません。 又、VB2005の参照設定でMicrosoft Excel11.0 Object Library指定 してExcel2003をインストールしているパソコンでは Excelに出力できますがExcel2007を インストールしているパソコンではExcelに出力できません。 Excel2003・Excel2007どちらがインストール されていてもExcelに出力できるプログラムを作成したいの ですが、何か方法はないでしょうか。 サンプル等があるHPがありましたら教えてください。

  • VB6.0のエクセル操作について。

    VB6.0のエクセル操作について。 環境:XP,VB6.0です。 VB6.0でのエクセル操作や印刷についての質問です。 VB6.0で、リストビューに表示されている行のデータをエクセルに移してそれを印刷するというプログラムを組みたいのですが、 流れとしては、 1.リストビューから選択行を取得。 2.選択行の項目を既存のエクセルテンプレートに沿ってエクセルに入力。 (出来れば毎回違う名前で保存したいです。) 3.そのエクセルを印刷。 という流れなんですが、とりあえず1番までは出来ているのですが、 2,3の部分、エクセル操作と印刷の部分が分かりません。 ややこしい質問ですが、どなたかご教授お願いします。

  • VBでExcel印刷する時のプリンタトレイの選択方法について

    VB6.0でエクセルを操作するプログラムを作成していますが、プリンタトレイの選択方法がわかりません。 エクセルで作成したシートをトレイ1には 専用用紙、トレイ2には普通紙をセットしたプリンタで印刷しようとしていますが、 .PaperBinでトレイ2を設定したのですが、いくら印刷してもトレイ1に印刷されてしまいます。 やはりエクセルで印刷する時(.PrintOutを使用)は PaperBinでは無く、他の方法があるのでしょうか? 他の方法をご存知の方は教えて頂けないでしょうか。

  • vb から Excel vba をうまく操作できない。

    VB 初心者で、困っています。 Excel VBA でいろんなツールを作成していますが数が多くなったので、今回、このツールを呼び出すメニューを作ろうと考えて、VB2008でメニューを作成したのですがうまく動作しません。 Excel VBAで作成しているツールは、単独で動作させれば、一番最後に新たなExcelファイルを作成・画面表示でツール自体は終了。となるのですが、VBメニューからツールを起動させると、最後に作成しているはずのExcelファイルが画面表示されません。(ファイルは作成されているみたいですが・・・) ・Excel VBA の新たなファイルへの出力部分です。     Worksheets("シート").Copy     Unload Me     Application.WindowState = xlMaximized     Workbooks("●●.xls").Close SaveChanges:=False ・VB2008 で呼び出すメニューボタン部分です。 Dim Exap As Object Exap = CreateObject("Excel.application") Exap.Workbooks.open("C:\●●.xls") Exap = Nothing よろしくお願いします。

  • VBでのExcel操作

    VB6.0を使用してExcelを操作するプログラムを作成しています。 Excelブックを全画面表示させて、右側に小さめのフォームを表 示させるのですが、Excelブックの方をクリック(アクティブ) したときにもフォームがExcelの手前に見えている状態にさせる にはどうしたらよいのでしょうか? いろいろ試みましたが、どうしてもフォームが後ろにいってしま います・・・。

  • VBからエクセルファイル作成

    VBでエクセルファイルを作成する処理を作っていて、ファイルは作成されるのですが、自動的にシートが3シート作られます。 作成時にシート数を指定することはできるのでしょうか? ネットでいろいろ調べるのですが、VBからのエクセル操作について書かれているサイトがあまりみつかりません。 よいサイトがありましたら、あわせて教えてください。 よろしくお願いします。

  • VB.NET EXCEL操作でのマクロ存在判定方法

    VB.NET(VS2005)でのEXCEL操作において、 そのEXCELファイルにマクロが含まれているかどうかを判断することは可能でしょうか? 何か方法があれば教えてください。 (指定したEXCELファイルを開いて印刷処理などをしたいのですが、  マクロがあるとエラーになったりと様々な問題が出てきます。  初めに、そのEXCELファイルにマクロがあるか判断し、  存在する場合は操作しないようにしたいと思っています。) どうぞよろしくおねがいします。

  • vbからのファイル操作について

    VB6.0について質問です。 VBでファイル操作をしてファイルを削除したいのですがどのような関数を使うと実現できますか? 現在指定したファイルをShellExecuteを使って開くところまではできたのですが削除の方法がわからず困っています。 お知恵をおかしください><

  • VB+Excel+Wordで…

    VBからExcelにデータを出力しそのExcelを基にWordで差込印刷を行なっています。 その差込印刷で作成したWordの文書を印刷するとき、1頁と5頁と8頁の指定で「1,5,8」と入力したとき選択した筈の頁どおり印刷されません。なにか問題があるのでしょうか? 通常の文書で前記のような指定をするときちんと出るんですが…

  • VB6 からEXCEL起動をブロックする方法

    VB6を使用してEXCELを開き色々コントロールするプログラムを作成したのですが、EXCELをプログラムからでなく、単独で起動してしまうとVB6から開いたEXCELのコントロールに悪影響を与えてしまうようです。 そこで、VB6で作成するプログラムの中にEXCELを単独で起動出来ないようにブロックするコードを入れられないかと考えています。 良い方法がありましたらご教授下さい。