- 締切済み
エクセルで画像付き商品台帳を製作したいんですが?
エクセルで仕事に使用してます商品台帳(簡単な関数を使い、別シートに商品データ一覧を作りそこからデータを抽出し、商品コードを入力すれば、JANコードや商品名、原価売価などのデータが表に一発で表示されるようにしてます)を何とか画像付きの物に替えたいのですがそのような事はエクセルでできるのでしょうか?理想は商品コードを入力すれば画像、JANコード、商品名などがすぐに表示されるようにしたいのですが。どなたか助けてはいただけないでしょうか?よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- papayuka
- ベストアンサー率45% (1388/3066)
#2です。 > A1セル以外に打ち込みセルを増やすにはどうしたらよいのでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) の ByVal Target As Range は引数と言って、Change イベントが発生した場合、Target には Change した Range が渡されてきます。 書き方は色々あると思いますが一例です。 個別にこことここのセルが変った場合とかなら、 アドレスを見て処理を分ける Private Sub Worksheet_Change(ByVal Target As Excel.Range) Select Case Target.Address Case "$A$1", "$B$2", "$C$3", "$D$4" '処理を書く MsgBox Target.Address & " はOK" Case "$A$2", "$B$1" '処理を書く MsgBox Target.Address & " はダメ" End Select End Sub この列ならとかの場合なら、 Private Sub Worksheet_Change(ByVal Target As Excel.Range) '列番号が1(A列)以外なら処理しない If Target.Column <> 1 Then Exit Sub '処理を書く MsgBox Target.Address End Sub Targetは複数のセルを含む事がある(複数セルを選択してCtrl+Enterで入力した場合)ので、複数セルの場合は処理しないとか細かい判定が必要になる事もあります。
- papayuka
- ベストアンサー率45% (1388/3066)
#2です。ちょっと訂正 3.上記で保存したブックのシート名タブを右クリックして、出てきたVBE画面に下のコードを貼り付けます。 ↓ 3.上記で保存したブックのシート名タブを右クリックして、「コードの表示をクリックし」出てきたVBE画面に下のコードを貼り付けます。
- papayuka
- ベストアンサー率45% (1388/3066)
#2です。 正直言ってこれから覚えるって事だと道のりは険しいですが、、、 やる気に敬意を表して適当なサンプルを書きました。Excel2000で確認しています。 #1さんが紹介されている本に載っている例の方が良いかも知れませんが、参考までに。 1.新規ブック立ち上げて適当なフォルダに「保存」します。(必ず) 2.同じフォルダ内に、画像ファイル(JPEG)を3つ用意して名前を下記のようにします。 1.jpg 2.jpg NoImage.jpg 3.上記で保存したブックのシート名タブを右クリックして、出てきたVBE画面に下のコードを貼り付けます。 4.VBE画面を閉じます。 5.セルA1に 1 や 2 を打つと1.jpg や 2.jpg が表示されます。それ以外だと NoImage.jpg が表示されます。 '---------------------------------------------------------------------- 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 & "\" & Target.Value & ".jpg" If Dir(fName) = "" Then fName = ThisWorkbook.Path & "\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 '----------------------------------------------------------------------
お礼
大変勉強になりました。親切丁寧にご指導いただきありがとうございました。なんとなくですが大体の流れがつかめました。あとひとつだけ質問してよろしいでしょうか?どうしても解からないのですが、A1セル以外に打ち込みセルを増やすにはどうしたらよいのでしょうか?表示される位置やサイズの理解はできましたけどこれだけがわかりません。勉強不足で申し訳ございません。よろしければお教え願えないでしょうか?
- papayuka
- ベストアンサー率45% (1388/3066)
どちらかと言うとExcelよりAccess等のデータベースソフトの領域だと思います。 Excelでやるなら#1さんの言われるようにVBAを使う必要があると思います。 ブックと同じフォルダに商品コードをファイル名にした画像を用意しておき、Worksheets_Change で Pictures.Insert するとか、、、
お礼
ありがとうございます。VBAがんばって覚えて挑戦してみます。ありがとうございました。
- p-22
- ベストアンサー率21% (69/320)
可能ですがVBAでないと不可能でしょうね このあたりの事をこの限られたスペースで 説明し理解してもらうのは不可能な事です 「チャレンジExcel2000VBA/田中享 著 」ローカス社 これに非常に参考になる例が載っています
お礼
回答ありがとうございます。早速明日にでも本屋に行ってこようと思います。ありがとうございました。
お礼
ありがとうございました。まだよく理解できませんが頑張って理解してみます。ありがとうございました