"안녕하세요! 여러분, 혹시 엑셀에 사진 128장을 하나씩 넣어본 적 있으신가요? 😱 저도 오늘 그 '노가다'의 위기에 직면했었답니다. 네이버를 이리저리 뒤져봐도 마땅한 매크로를 못 찾아서 좌절하던 중... 결국 챗GPT에게 SOS를 쳤고, 드디어 해결책을 찾아냈습니다! 저처럼 100장이 넘는 사진 앞에서 막막하신 분들을 위해 그 방법을 공유합니다."
엑셀 매크로(VBA) 코드 적용하는 법
1. VBA 편집기 창 열기
엑셀 화면에서 키보드의 Alt + F11을 동시에 눌러주세요.
2. 새 모듈(Module) 만들기
상단 메뉴에서 [삽입(I)] -> [모듈(M)] 을 순서대로 클릭합니다. (코드을 넣을수 있는 창이 뜹니다~)
3. 코드 복사 & 붙여넣기
매크로 코드를 전체 복사(Ctrl + C)해서, 하얀 창에 붙여넣기(Ctrl + V) 합니다.
4. 엑셀로 돌아가기
창을 닫거나, 다시 Alt + Q 를 누르면 원래의 엑셀 화면으로 돌아옵니다. 이제 실행 준비 끝!
[코드]
Sub Insert_OnePic_Per_Cell()
Dim pics As Variant
Dim i As Long
Dim c As Range
Dim shp As Shape
'여러 사진 선택
pics = Application.GetOpenFilename( _
FileFilter:="Pictures (*.jpg;*.png;*.bmp;*.gif),*.jpg;*.png;*.bmp;*.gif", _
MultiSelect:=True)
If Not IsArray(pics) Then Exit Sub
i = 1
For Each c In Selection.Cells
If i > UBound(pics) Then Exit For
'기존 사진 삭제 (해당 셀 위치)
For Each shp In ActiveSheet.Shapes
If shp.TopLeftCell.Address = c.Address Then
shp.Delete
End If
Next shp
'사진 삽입
Set shp = ActiveSheet.Shapes.AddPicture( _
pics(i), _
msoFalse, _
msoTrue, _
c.Left, _
c.Top, _
c.Width, _
c.Height)
With shp
.LockAspectRatio = msoFalse
.Top = c.Top
.Left = c.Left
.Width = c.Width
.Height = c.Height
End With
i = i + 1
Next c
End Sub
코드를 넣었다면? 이제 실행할 차례!
1. 매크로 실행창 열기
엑셀 시트로 돌아와서 사진이 들어갈 칸만 선택 후 Alt + F8 을 눌러주세요.
2. Insert_OnePic_Per_Cell '실행' 버튼 클릭!
목록에서 해당 매크로를 선택하고 [실행] 버튼을 누릅니다. 폴더 선택 창이 뜨면 사진들이 저장된 폴더를 지정해 주세요.
선택한 첫 번째 칸부터 파일 이름 순서대로 자동 채워짐 니다. ( Ait + A 또는 사진 드래그 후 열기 )
⚠️ 주의할 점 (꿀팁1)
사진이 겹치거나 이상하게 들어간다면? 90%는 바로 이 '병합된 셀' 때문입니다.
⚠️ 주의할 점 (꿀팁2)
일반 엑셀 파일(.xlsx)로 저장하면 공들여 넣은 매크로가 다 날아가 버려요! 반드시 [다른 이름으로 저장] 을 누르고 파일 형식을 '엑셀 매크로 사용 통합 문서(.xlsm)'로 선택해 주세요.