이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.
글 수 822
안녕하세요 . 엑셀에대해서 잘모르고요 물어봐도 아는 사람이 없네요..
짐올린서식도 아는사람한테 부탁해서 만들었는데요
예를 들어 점명만 치면 숫자나 문자는 자동으로 들어가는데요
문제는 사진을 일일이 넣어야 하는데
점명만 치면 사진도 자동으로 넣는 방법이 있나요?
평택22를 치면 표석대장씨트엔 "평택22표지'란사진이 조사현황씨트엔 '평택22근경' '평택22원경'이란사진이
자동으로 넣을수 있나요?(사진이름은 평택22표지 평택근경 평택22원경 이렇게 다른 폴더에 만들어져있다면요)
이게 가능할지는 모르겠구요
읽어 주심에 감사드림니다.
수고하세요.
댓글 '3'
엑셀은 정말 무궁무진한 프로그램입니다. ㅎㅎ
천안 갈일 있음 전화드릴께요.. 꼭 밥 한끼 사주세요.. ^-^;;
강아지는 제 쎈쓰죠~ ㅎㅎ
첨부파일을 다운 받아, 압축을 푸시고 엑셀 파일을 여신다음..
"J5"셀의 값을 평택419, 평택422, 평택423 으로 바꿔서 선택해보세요.
엑셀 파일이 저장되어 있는 폴더 밑에 있는 images라는 폴더에 있는 해당 이미지를 가지고와서 셀 사이즈에 맞게 쏙 들어갑니다.
다운받기 : abyul_20090729_insertPicture.zip
솔직히..
이걸 해드릴까 말까 살짝 고민을 했지요.. ㅎㅎ
만드는 방법을 설명을 해드라자니 막막합니다. =_=;;
일단 보시지요...
기본적으로 엑셀의 기본 기능으로는 불가능합니다. VBA를 사용하실 수 밖에 없구요..
만약에 별도의 시트에 이미지가 모두 첨부되어 있다면.. 이름을 이용해서 동적 참조가 가능할 수도 있겠지만..
파일을 열어서 첨부하는 문제이니.. VBA로 할 수 밖에 없습니다.
코드에 주석을 열심히 달아놨습니다만.. 아래 코드를 이해하실 수 있을지는 잘 모르겠습니다.
생각보다 시간이 많이 걸렸구요.. 고생했습니다. 애썼다 한말씀해주세요.. ㅎㅎ
Option Explicit
Public pointNumber As String
Sub insertPicture()
'엑셀 파일이 있는 경로를 변수로 지정합니다.
Dim basePath As String
basePath = ActiveWorkbook.Path
'작업할 시트들을 변수로 지정합니다.
'그래야 나중에 시트 이름을 바꿔도 아래 2줄만 바꾸면 되게끔요..
Dim S_ps As Worksheet
Set S_ps = Worksheets("표석대장")
Dim S_js As Worksheet
Set S_js = Worksheets("조사현황")
'삼각점번호의 값을 masterCode라는 변수에 집어 넣지요~
Dim masterCode As String
masterCode = S_ps.Range("J5").Value
'사진 삽입에 필요한 변수 정의
Dim R As Range
Dim strFile As String
'사진을 삽입하기 전에 기존 사진을 제거합니다.
S_ps.Select
If ActiveSheet.DrawingObjects.Count > 0 Then
Call deleteObject
End If
'표석 대장 시트에 표지 사진 입력
Set R = S_ps.Range("G20:AJ42")
strFile = basePath & "\images\" & masterCode & "표지.JPG"
Call resizePic(S_ps, R, strFile)
'사진을 삽입하기 전에 기존 사진을 제거합니다.
S_js.Select
If ActiveSheet.DrawingObjects.Count > 0 Then
Call deleteObject
End If
'조사현황 시트에 근경 사진 입력
Set R = S_js.Range("A3:M3")
strFile = basePath & "\images\" & masterCode & "근경.JPG"
Call resizePic(S_js, R, strFile)
'조사현황 시트에 원경 사진 입력
Set R = S_js.Range("A5:M5")
strFile = basePath & "\images\" & masterCode & "원경.JPG"
Call resizePic(S_js, R, strFile)
S_ps.Select
S_ps.Range("J5").Select
pointNumber = Worksheets("표석대장").Range("J5").Value
End Sub
'시트에 이미지 삽입 후에 셀 사이즈에 맞게 이미지 조정.
' resizePic( 삽입할 시트, 삽입할 셀 영역, 삽입할 파일 이름 )
Sub resizePic(S As Worksheet, R As Range, strFile As String)
S.Select
R.Select
Dim fileName As String
fileName = Dir(strFile)
If Len(fileName) > 0 Then
S.Pictures.Insert(strFile).Select
With Selection
.Top = R.Top
.Left = R.Left
.Height = R.Height
.Width = R.Width
End With
Else
MsgBox "화일이 없어요~", vbInformation, "이미지 삽입 에러창"
S.Range("j5").Select
End
End If
End Sub
'사진을 삽입하기 전에 기존 사진을 제거합니다.
Sub deleteObject()
ActiveSheet.DrawingObjects.Select
Selection.Delete
End Sub