VB(A)

이미지를 엑셀 파일 자체에 삽입

당근쨈 2015. 11. 18. 20:48

엑셀 자체에 이미지를 삽입해주는 코드





Option Explicit
Sub InsertImage()
 
    Dim rngFile As Range 'A열 순환
    Dim SingleRange As Range
    Dim p As Object '이미지 개체
    Dim strFile As String '이미지 파일명
    Dim imgLeft As Single '이미지 왼쪽 위치
    Dim imgTop As Single '이미지 위쪽 위치
    Dim imgWidth As Single '이미지 폭
    Dim imgHeight As Single '이미지 높이
    
    Application.ScreenUpdating = False
    Set rngFile = Range("A2", Cells(Rows.Count, 1).End(3))
    
    'A열을 순환하며 이미지 삽입
    For Each SingleRange In rngFile
    
        On Error Resume Next
        
        With SingleRange
        
            '파일명 선언
            strFile = ThisWorkbook.Path & "\" & .Value & ".jpg"
            
            With .Offset(, 3)
                
                imgLeft = .Left + 1 '이미지 왼쪽 위치
                imgTop = .Top + 1 '이미지 위쪽 위치
                imgWidth = .Width - 2 '이미지 폭
                imgHeight = .Height - 2 '이미지 높이
                
                '이미지를 파일에 직접 삽입
                Set p = ActiveSheet.Shapes.AddPicture(Filename:=strFile, linktofile:=False, _
                    savewithdocument:=True, Left:=imgLeft, Top:=imgTop, Width:=imgWidth, _
                    Height:=imgHeight)
                    
                '이미지가 없을 경우 No Image 출력
                If Err.Number <> 0 Then .Value = "No Image"
                
            End With
            
        End With
        
        On Error GoTo 0
        
    Next
    
    Application.ScreenUpdating = True
    
End Sub
 
cs



이미지를 엑셀에 삽입하기.zip