|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007):
* 아래줄에 질문을 작성하세요 >>
안녕하세요, 엑셀로 제품 사양서를 만들고 있는 중에 질문이 있어서 이렇게 글을 작성합니다.
첨부파일의 기본형 시트에서 제품 사이즈(M16:P16)셀에 있는 118 X 80 X 30를 바탕으로 같은 위치의 118 X 80 X 30.jpg 파일을 T4:AC42, 혹은 active X 이미지 컨트롤로 넣고 싶습니다.
제품 사이즈(M16:P16)셀 값이 변동되면 그에 따라 변동된 jpg 파일이 나타날 수 있었으면 합니다.
A4셀의 제품 사진의 경우, 다른 시트에서 이름 지정으로 연동시켰으나
T4:AC42에 도면을 넣기에는 셀들이 너무 작아서 사진이 깨져서 활용에 어려움이 있었습니다.
다른 분들이 작성하신 파일을 봤지만 따라할 수가 없어서 이렇게 질문을 올립니다.
미리 감사 인사 드리며 꼭 좀 부탁드리겠습니다.
==============[이해준님 글에 대한 답변입니다]==============
VBA 워크시트 이벤트 개체를 이용 했습니다.
첨부파일 참조하세요...
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells(1).Address <> Me.[M16].Address Then Exit Sub
Dim sFn As String, pic As Picture, rPos As Range
Set rPos = Me.[T4]
For Each pic In Me.Pictures
If pic.TopLeftCell.Address = rPos.Address Then pic.Delete
Next
If Target.Cells(1).Value = "" Then Exit Sub
sFn = ThisWorkbook.Path & Application.PathSeparator & Target.Cells(1).Value & ".jpg"
If Dir(sFn) = "" Then
MsgBox "[" & sFn & "] 라는 파일이 없습니다.", vbCritical
Exit Sub
End If
With Me.Pictures.Insert(sFn)
.Left = rPos.Left
.Top = rPos.Top
.Width = rPos.MergeArea.Width
.Height = rPos.MergeArea.Height
End With
End Sub
|
|