VBA를 통한 이미지 삽입 (저장할 수 있는!)

학습/엑셀 VBA|2014. 4. 2. 22:46
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

VBA를 통해서 이미지 삽입 시, 많이 사용하는 LoadPicture를 사용한다.


하지만 해당 LoadPicture()를 사용할 경우, 2010 버전 이후에서는 이미지Link가 되고, 

파일 저장 시, 이미지가 함께 저장되지 않는다.


그래서 다른 사람들에게 전달하거나 정리하기에는 알맞지 않은 함수;;


그래서 다른 함수를 찾은 것이 AddPicture 함수가 있다.


해당 함수를 사용하면 이미지를 호출하고 저장할 수 있다.




용법:


Shapes.AddPicture(파일명, 파일연결 여부 , 그림을 문서와 저장 여부 

                             , X좌표 , Y좌표, 이미지 높이, 이미지 넓이)


실제 사용 시.


    dim r위치

    set r위치 = Range("Sheet1!A1")


    iLeft = r위치.Left

    iTop = r위치.Top

    Set s = Worksheets(sSheetName).Shapes.AddPicture(sFileName, False, True, iLeft, iTop, 51, 51)


시트1에 A1위치에 이미지를 삽입하는 방법이다.


댓글()

엑셀 VBA로 이미지 파일 읽어서 붙이기!!!

학습/엑셀 VBA|2011. 6. 8. 12:29
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

엑셀로 이미지 파일을 관리하기 위해서
새로운 이미지를 불러올 필요가 있다.
이 때에는 아래와 같은 VBA 함수를 이용할 수 있다.. >ㅁ<b

    Dim picTemp
    Dim sPicPath

    Set picTemp = ActiveSheet.Pictures.Insert(sPicPath)

위와 같이 실행하면 현재 위치하는 셀에 이미지가 들어간다!!!
아..만약 현재 셀에 딱 맞게 이미지를 넣고 싶다면, 아래의 코드를 추가하자.
현재 자신의 셀 크기에 맞게 이미지를 수정해 주는 것이다.
    
    picTemp.Width = ActiveCell.Width - 2
    picTemp.Height =ActiveCell.Height - 2
    picTemp.Top = ActiveCell.Top + 1
    picTemp.Left = ActiveCell.Left + 1

-추가 내용-
이렇게 하면 계속 Picture가 추가되어서 문제 될 수 있다.
이럴 때엔 그림을 한 번에 날려줄 수 있는 코드가 있다!

    ActiveSheet.Pictures.Delete

모두 다 날리니깐... 주의하자!


댓글()