dポイントプレゼントキャンペーン実施中!

例えば、Sheet1に、支店番号、支店名、住所、電話番号、地図(jpgファイル名)等の項目を作り、100件以上のレコードが入っている表があります。

Sheet2に、上記の1レコード(=1支店)分のデータをA4用紙に見やすく配置したフォーム(?)を作り、VLOOKUP関数を使って、データを表示させるようにしました。(つまりA支店の支店番号を選ぶとA支店のデータが、B支店の支店番号を選ぶとB支店のデータが表示)

★この時、それぞれのレコードのjpgファイルの画像も表示させたいのですが、どのようにすればできるのでしょうか?

ハイパーリンクのように他に飛んで表示させるのではなく、エクセルのその場所に表示させたいのです。(1支店分をA4用紙で印刷したいので)

別のシートで、実際に画像を貼付たものとその名前のデータベースを作り、それとリンクを貼る。という方法を知ったのですが、レコード件数がかなりあるので、この方法はちょっと使えません。

他に何かいい方法をご存知の方がいらっしゃいましたら、どうか教えて下さい!関数、Visual Basicの使用でも構いません。

ちなみに画像は、エクセルファイルの置いてある下(サブフォルダ)にまとめて入れております。宜しくお願い致します。

A 回答 (5件)

#1です。



ちなみにファイルのパスは例の通りでなくても大丈夫のハズです。
但し、
1)Excelファイルのあるフォルダのサブフォルダ名は「Image」
2)エラー時用のファイル名は「NoImage.jpg」
この2つを変える場合はコードの記載にある同様の部分を修正する必要があります。

 "\Image\" → "\好きなフォルダ名\"
 "\Image\NoImage.jpg" → "\好きなフォルダ名\好きなファイル名.jpg"

カスタマイズですが、

*支店コードを入れるセルを変えたい場合
 "$A$1" を好きなセルに変えます。
 但し、それによって地図ファイル名を表示させるセルは必ずその右隣のセルにします。

 例)"$A$1" → "$D$5" にした場合、"E5"に地図ファイル名をVLOOKUPで表示

*画像を表示する位置を変えたい場合
 全部で3箇所ある "$C$1" と "C1" を好きなセルに変えます。

*表示する画像のサイズを変えたい場合(今は横320x縦240です)
 .Range("C1").Left, .Range("C1").Top, 320, 240) の 320 と 240 を変更します。
    • good
    • 2
この回答へのお礼

わかりやすいご説明ありがとうございますっ!!!

場所を変えたり大きさ変えたり色々できました☆☆☆
変更したのがちゃんと反映されると嬉しい&楽しいですね♪

本当にどうもありがとうございました♪♪♪

お礼日時:2007/04/03 00:40

↓を見落としてました・・・。



>別のシートで、実際に画像を貼付たものとその名前のデータベースを作り、それとリンクを貼る。という方法を知ったのですが、レコード件数がかなりあるので、この方法はちょっと使えません。
    • good
    • 0
この回答へのお礼

おチカラになってくれようとして下さり、ありがとうございました。

お礼日時:2007/04/03 00:45

VBAを使用しない方法です。

面倒ですが・・・。

http://www.geocities.jp/chiquilin_site/data/0505 …
    • good
    • 2

#1です。



> 頭とおしりの『'-----』を付けたら。。。

先頭に『'』を付けるとコメント行の意味になり実行に影響を与えません。
従って『'-----』は特に関係無いのですが、、、、

ちなみに、上手く動くなら下記2箇所の先頭にある『'』は消した方が良いです。

'On Error GoTo ER:
  ・
  ・
'ER:

  ↓

On Error GoTo ER:
  ・
  ・
ER:
    • good
    • 2
この回答へのお礼

『'』は確かコメント行だから関係ないかな?とも思ったのですが、区切りとして必要だったから最初はエラーになってしまったのかな?と思ってしまいました。やはり関係なかったですね。。汗

『'On Error~』の件もありがとうございます。とってやってみます!

ありがとうございました。

お礼日時:2007/04/03 00:36

1)該当ブックの保存先のサブフォルダ名を Image とします。


2)Imageフォルダには地図ファイルの他に NoImage.jpg と言うエラー時のファイルを用意します。
3)Sheet2の A1 が支店コードを入力する欄とします。
4)Sheet2の B1 が支店コードによってVLOOKUPで地図ファイル名を表示するセルとします。
5)Sheet2のシート名を右クリックして「コードの表示」を押下し出てきたVBE画面に下記をコピペします。

'----------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim fName As String, pict As Shape
'On Error GoTo ER:
 If Target.Address <> "$A$1" Then Exit Sub
 fName = ThisWorkbook.Path & "\Image\" & Target.Offset(0, 1).Text
 If Dir(fName) = "" Then
   fName = ThisWorkbook.Path & "\Image\NoImage.jpg"
 End If
 With ActiveSheet
  For Each pict In .Shapes
   If pict.TopLeftCell.Address = "$C$1" Then
     pict.Delete
     Exit For
   End If
  Next pict
  Set pict = .Shapes.AddPicture(fName, msoTrue, msoFalse, _
        .Range("C1").Left, .Range("C1").Top, 320, 240)
 End With
'ER:
End Sub
'----------------------------------------------------------------------

Excel保存フォルダ(例 C:\Test)
画像保存フォルダ(例 C:\Test\Image)
Sheet2の構成
  A1 支店コード(例 1001)
  B1 ファイル名(例 aaa.jpg)
のような感じです。

この回答への補足

早速の回答、ありがとうございます!!ですが、、やってみたのですが、、画像が表示されませんでした。(泣)(ドライブ、フォルダも例と同じにやってみても、、勿論NoImage.jpgも作りましたが)
Excel2002、Visual Basic 6.0ですが、バージョンの問題とかあるのでしょうか?また色々と変えたりしてやってみますが、もし何か注意点などあるようでしたら、教えて下さい。

補足日時:2007/03/31 02:28
    • good
    • 4
この回答へのお礼

きゃーー、出来ました☆出来ましたーー!!!
頭とおしりの『'-----』を付けたら。。。(汗。えっ?これだけの問題??)お騒がせしてすみませんでした。
なにわともあれ、papayukaさんのおかげで、やりたかった事が出来るようになりました☆本当にどうもありがとうございました!!!

お礼日時:2007/03/31 03:06

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A