[[20090706175820]] 『エクセルのデータに画像ファイルをリンクして、ク』(あみ) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『エクセルのデータに画像ファイルをリンクして、クリックするとエクセル上に表示』(あみ)

 エクセルにある大量のリストに対し画像をリンクさせたいと思っています。
 注文書のようなものを作りたいのです。たとえば、リスト上の商品コードをクリック
 すると、 ハイパーリンクで別のフォルダにある画像を表示させ、その画像が
 エクセル上に貼付けられ、注文書が出来る・・・みたいな感じです。
 わかりますでしょうか???

    code    item name    price
 1. 0001    AAAAAA       \100 
 2. 0002    BBBBBB       \300
 3. 0003    CCCCCC       \200
 .
 .
 .
 ↓↓↓↓↓(コードをクリックすると新しいシートが立ち上がり・・・)
 1. 0001    AAAAAA      \100
    (画像)

 上記のような感じです。
 ※新しいシートが立ち上がる必要もないのですが・・・注文書になればいいです。
 説明ヘタですみません。

 何卒、アドバイスをお願いします。


[[20090402223416]]
画像読み込みの参考になりそうです


 ありがとうございます。
 頂いた過去の書き込みの情報を見てみましたが・・・

 コードを使用してみようと思ったのですが・・・私があまりに初心者なので
 このコードをMODULE1に貼り付けて、その後どうしたらよいかさっぱりわかりません!
 リストは参考の[[20090402223416]] と同じ様にE列にリンク先のアドレスを貼り付けています。
 (貼り付けるだけでは リンクしませんよね?ハイパーリンクですか?)
 (貼り付ける画像は、エクセル上で保存されるべきなのですか?それともJPEGの状態でいいのですか?)

 オートフィルタで条件を絞った後・・・どのようになるのか・・・

 さっぱりです。
 どなたか、初心者で全くわからない私ですが・・・どうしても仕事で急遽必要ですので
 教えていただけると助かります。
 何卒よろしくお願いいたします。
 (あみ)

 こんばんは、お役に立てるかどうか、、、
 >注文書になれば
とのことですが、注文書にはひとつのコードと画像・単価だけで完成なのでしょうか
コードと単価と数量を何行か書いて注文書を作成することはあるのですが、
画像はコードに対応する品物ですよね。注文書の画像なんかではなく、、、、

 A  B   C     D     E
    code     画像       item name    price
 1. 0011     jpg        AAAAAb       \1000 
 2. 0002     jpg        BBBBBB       \300
 3. 0003     jpg        CCCCCC       \200

 リンク先のと似てますが左隣列にjpgが縦横の比率を変えずセルの高さに収まるように前に作ったものです。
Dドライブにjpgsというフォルダを作ってそこに保存したjpgのファイル名をセルにいれて使ってました。
画像を表示したいとこだけセルを選んでマクロを実行したらその画像がインポートされます。

 DE列はA列にコードを入力するとVlookupなどで値段や名前が表示され
B1とB3を選択して下記のマクロを実行すると、C1に0011.jpg、とC3に0003.jpgが貼り付けられます。
B1のみとかB2〜B4でもOKでした。
消すのも自動にしようとして、不要になったので未完成です。

 Sub addpic()
Const myFdn = "D:\jpgs\"
Dim myShp As Shape
Dim myRng As Range
Dim myR As Range
 On Error Resume Next
With ActiveWindow
  With .Selection
    Set myRng = .SpecialCells(12) '可視セル
  End With
 If myRng Is Nothing Then Exit Sub
 For Each myR In myRng

 Set myShp = ActiveSheet.Shapes.AddPicture(Filename:=myFdn & myR.Value & ".jpg", _
          LinkToFile:=True, SaveWithDocument:=False, left:=myR.Offset(, 1).left, _
          top:=myR.Offset(, 1).top, Width:=100#, Height:=100#)

      With myShp
          .ScaleHeight 1!, msoTrue
          .ScaleWidth 1!, msoTrue
          .Height = myR.Height
      End With
 Next
 End With
 End Sub

 オートシェイプにユーザー定義関数で表示させるといった方法も考えられます。
お急ぎのようですので、画像付の注文書を作成したいとか注文書の形をあげて質問なさったほうがいいのかもしれません(ふぅ)


 (ふぅ)さま
 ご回答ありがとうございます!できました!!!!まさにこれがしたかったのです!
 現段階ではこれで十分です。また追って、機能等と追加していきたいと思っています。
 このコードを見て勉強するとともに、また質問させていただくと思います。
 その際は、もっと具体的にわかりやすく質問させていただきます。
 よろしくお願いいたします!
 本当にありがとうございました!!!
 (あみ)

 お役に立てたようで、よかったです。
字下げなどがきちんとできてなくて見辛いですね。すみません

 削除も出来たら便利ですよね?
Sub delpic()’削除用
Dim MyShp As Shape
 For Each MyShp In ActiveSheet.Shapes
 With MyShp
   If Not Intersect(Selection, .TopLeftCell) Is Nothing And _
      Not Intersect(Selection, .BottomRightCell) Is Nothing Then
          .Delete
      End If
    End With
Next
End Sub
まず、テストして見てくださいね。
選択セルの図が消えてしまいますので、、、

[[20080728110751]]ここがわかりやすいかもです
(ふぅ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.