• ベストアンサー

Visual BasicでExcelを操作するには?

初めましてこんにちは。 質問なのですが、 ExcelのA列に値を順々に書き込んでいくんですが、 この時に値が1~5までの場合はAの画像、 6~10までの場合はBの画像、といったように 入力されていく値に対してVisual Basicのイメージコントロールに画像を表示するにはどうしたらいいでしょうか?  |  A | 1|  10|・・・Bの画像 2|   4|・・・Aの画像 3|   8|・・・Bの画像                  

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

Dim wb As Excel.Workbook Dim ws As Excel.Worksheet Dim ea As Excel.Application Dim varValue As Variant Set wb = GetObject("C:\Test\Test.xls") Set ea = wb.Application Set ws = wb.Worksheets("Sheet1") '値の取得の例 varValue = ws.Cells(1, 1)  'A1 varValue = ws.Cells(2, 1)  'A2 varValue = ws.Cells(1, 2)  'B1 varValue = ws.Cells(2, 2)  'B2 '終了処理 Set ws = Nothing Set wb = Nothing Set ea = Nothing のような感じです。

geisha
質問者

お礼

tsukasa-12rさん返信ありがとうございます。 お礼が遅れてすみません、大変参考になりました。 なんとか解決できそうです、ありがとうございました。

その他の回答 (2)

noname#240783
noname#240783
回答No.2

こんなコードを作ってみました。 ご質問の要件を満たしているかどうかちょっと不安ですが... 前提: A1,A2,A3の各セルに対応する形でB1,B2,B3セルの位置に それぞれImage1,Image2,Image3の名前でImageコントロールを 配置しています。 コード: ' このイベントはセルの値が変わったときに発生します。 Private Sub Worksheet_Change(ByVal Target As Range) Dim X(10) As Image 'とりあえずImageオブジェクトの配列10個準備 ' 行に対応する形でImageコントロールを配列にセット Set X(1) = Image1 Set X(2) = Image2 Set X(3) = Image3 ' カラムが1、つまりA列かどうか検査 If Target.Column = 1 Then ' 対象セルの値を検査(1から5の場合) If 1 <= Cells(Target.Row, Target.Column).Value And _ Cells(Target.Row, Target.Column).Value <= 5 Then ' 用意した画像ファイルを、行数を配列の添え字としたImageオブジェクトに流し込む X(Target.Row).Picture = LoadPicture("D:\OKWeb_in_marmot\Pic_A.bmp") ' 対象セルの値を検査(6から10の場合) ElseIf 6 <= Cells(Target.Row, Target.Column).Value And _ Cells(Target.Row, Target.Column).Value <= 10 Then X(Target.Row).Picture = LoadPicture("D:\OKWeb_in_marmot\Pic_B.bmp") End If End If End Sub あらかじめ必要個数分の配列を用意し、オブジェクトを一つ一つセットしなくては ならないので、プログラミング的にはとっても融通性の無いダメダメコードですが、 とりあえずの参考にしてみてください。

geisha
質問者

お礼

chipmoguraさん、お返事ありがとうございます。 詳しく解説までしていただきとても参考になりました。 ありがとうございます。

回答No.1

GetObject を使用しましょう。 GetObject に関して詳しいことはヘルプを参照してください。 GetObject で取得した WorkBook オブジェクトや WorkSheet については、Excel の VBA のヘルプを参照するとよいでしょう。 イメージコントロールに画像を表示するあたりは問題ないですよね?

geisha
質問者

お礼

すみません、間違えて補足の方に書き込んでしまいました。

geisha
質問者

補足

tsukasa-12rさん、お返事ありがとうございます。 すみません、その辺のこともよく分からないので ご迷惑でなければ、ご教授願えませんでしょうか?

関連するQ&A