본문 바로가기

EXCEL/VBA

VBA - 엑셀 이미지 그림 동적 삽입

반응형

하드디스크에 저장되어있는 이미지(JPG, BMP, PNG 등) 그림 파일을 특정 셀 위치에 삽입하는 매크로를 작성하였다. 삽입된 이미지 그림의 크기와 위치 조정도 가능하도록 하였다.

 

1. Sheet 지정

아래와 같이, 따옴표 안에 시트이름을 설정하여, 이미지 그림을 삽입하고자 하는 시트를 지정해준다.

Sheets( "시트명")

 

2. 셀 지정

아래와 같이, Cells 키워드를 사용하여, 이미지 그림을 넣고자하는 위치를 지정해준다.

여기서, Cells( 세로 위치, 가로 위치) 가 된다.

Cells( 세로 위치, 가로 위치).Select 명령으로 커서의 위치가 해당 셀로 이동하게 된다.

Sheets("시트명").Cells(2, 27).Select

 

3. 이미지 그림 삽입

이미지 그림은 Pictures.insert(경로명)으로 삽입한다.

그러나, 삽입한 이후에 해당 이미지를 수정 / 편집해야할 수 있으므로, 변수로 지정하여 아래와 같이 설정해 둔다.

Set ofig = Sheets("시트명").Pictures.Insert("D:\figure\test.jpg")

 

4. 삽입된 이미지 그림 크기 조정

삽입된 이미지의 크기는 ScaleHeight를 사용하여 비율로 조정할 수 있다.

ofig.ShapeRange.ScaleHeight 0.42, msoFalse, msoScaleFromTopLeft

 

5. 삽입된 이미지 그림 위치 조정

삽입된 이미지의 위치 조정은 IncrementLeft / IncrementRight 로 가능하다.

그러나, 미세 조정하는 방법은 크기를 지정해줘야하는 번거로움이 있으므로,

가급적 셀의 위치로 삽입하는 것이 좋을 것 같다.

ofig.ShapeRange.IncrementLeft 49.5
ofig.ShapeRange.IncrementTop 45

 

6. 최종 코드

하드디스크에 저장된 이미지 그림을 특정 셀 위치에 삽입하고,

크기 조정 후 미세 조정하는 Sample Code는 다음과 같다.

' 이미지 그림을 삽입하고자하는 시트위 셀 위치 지정
Sheets("시트명").Cells(2, 27).Select

' 하드디스크에 저장된 이미지 파일을 선택 후 삽입
Set ofig = Sheets("시트명").Pictures.Insert("D:\figure\test.jpg")

'이미지 그림의 크기 조정
ofig.ShapeRange.ScaleHeight 0.42, msoFalse, msoScaleFromTopLeft

' 삽입된 이미지 그림의 미세 위치 조정
ofig.ShapeRange.IncrementLeft 49.5
ofig.ShapeRange.IncrementTop 45

 

 

 

 

반응형