매거진 바로가기

닫기

  • 매거진 로고(비즈폼)
  • 매거진 로고(매거진)

검색

SNS 공유하기

이전화면

엑셀 사진 자동 넣기 매크로

 

 

 

 

 

 

회사에서 엑셀 파일에 사진을 추가한 후 메일로 전달했는데

 

사진이 보이지 않는다는 피드백을 받은 적 있으신가요?

 

또는 사진 대지 파일을 작업 시

 

매번 사진을 따로 전달하는 것이 번거롭게 느껴지셨던 적이 있나요?

 

 

이런 상황을 해결하기 위해

 

VBA를 활용한 사진 삽입 기능을 소개해 드리겠습니다!😎

 

 

 

 

 


 

 

 

 

 

 


 

 

 

 

 

기본적으로 매크로 기능(VBA)을 활용해야 하는데,

 

매크로라고 어려운 것 만은 아니니까 잘 따라와 주세요😉

 

 

 

먼저 엑셀 화면에서 상단의 [개발 도구]탭을 클릭합니다.

 

그 다음, 삽입 👉 [단추]를 선택하면

 

마우스 커서가 ( + ) 모양으로 바뀝니다.

 

이제 단추를 삽입할 위치를 정하고 드래그하여 단추를 만들어 주세요.

 

위치나 모양은 나중에 변경할 수 있습니다.

 

 

 

 

 


 

 

 

 

 

드래그 한 모양으로 단추가 생성되면

 

바로 [매크로 지정] 이라는 팝업이 나타납니다.

 

이 때 새로 만들기를 클릭하면 VBA 화면이 자동으로 열립니다.

 

 

 

 

 


 

 

 

 

 

위와 같이 VBA 코드를 추가하면 작업이 완료됩니다!

 

해당 코드는 그대로 복사하여 붙여넣기 해주셔도 무방합니다📌

 

 

혹시 이 VBA 코드의 의미가 궁금하신가요?🙋‍♀️

 

제가 자세히 설명해드릴게요!

 

 

 

 

 

 구 분

VBA 코드

설 명 

 변수선언

Dim strFile As String

Dim sht As Worksheet

Dim rngInsert As Range

각 문자열, 활성 시트, 셀 범위 등의 변수를 선언합니다.

 변수set

Set sht = ActiveSheet

현재 활성화된 시트를 sht에 할당합니다. 

이를 통해 현재 작업 중인 시트를 쉽게 참조할 수 있습니다.

 파일 선택

대화 상자 호출

strFile = Application.GetOpenFilename(filefilter:="모든파일(.),.", Title:="사진선택")

GetOpenFilename 메서드를 사용하여 파일 선택 대화 상자를 표시합니다. 

사용자는 파일을 선택하고 그 경로가 strFile 변수에 저장됩니다. 

filefilter는 파일 형식을 지정하고, Title은 대화 상자의 제목입니다.

 조건문

(파일 선택 확인)

If strFile = "False" Then

MsgBox "사진이 선택되지 않았습니다.", , "비즈폼"

사용자가 파일 선택을 취소했을 경우 strFile은 문자열 "False"로 설정됩니다. 이 조건문은 사용자가 파일을 선택하지 않았을 때 경고 메시지를 표시하고 서브루틴을 종료합니다.

서브루틴 종료 

Exit Sub

서브루틴을 종료합니다. 

파일 선택이 취소된 경우 이후 코드는 실행되지 않습니다.

 변수 초기화

Set rngInsert = Selection

사용자가 현재 선택한 셀 범위를 rngInsert에 할당합니다.

이 범위는 이미지가 삽입될 위치를 결정합니다.

 이미지 삽입

sht.Shapes.AddPicture Filename:=strFile, _

                      LinkToFile:=msoFalse, _

                      SaveWithDocument:=msoTrue, _

                      Left:=rngInsert.Left, _

                      Top:=rngInsert.Top, _

                      Width:=rngInsert.Width, _

                      Height:=rngInsert.Height

AddPicture 메서드를 사용하여 이미지를 추가합니다.

이 메서드는 다음과 같은 매개변수를 사용합니다.

- Filename:=strFile : 선택한 파일의 경로

- LinkToFile:=msoFalse : 이미지를 문서에 포함시키고, 외부 링크를 사용하지 않겠다는 설정

- SaveWithDocument:=msoTrue : 문서와 함께 이미지를 저장하겠다는 설정

- Left:=rngInsert.Left : 삽입할 이미지의 왼쪽 위치를 설정합니다.

- Top:=rngInsert.Top : 삽입할 이미지의 위쪽 위치를 설정합니다.

- Width:=rngInsert.Width : 삽입할 이미지의 너비를 설정합니다.

- Height:=rngInsert.Height : 삽입할 이미지의 높이를 설정합니다.

 

 

 

 

 


 



 

 

 

위와 같이 설정한 후 ❎를 클릭하여 VBA 화면을 닫으면

 

내가 만든 버튼에 매크로 설정이 완료됩니다.

 

 

이제 버튼의 이름을 적절하게 수정해주세요.

 

 

현재 예시에서는 [사진삽입]으로 변경했는데요!💛

 

버튼 이름의 폰트, 사이즈 및 버튼 크기도 조절할 수 있으니

 

보기 좋게 수정해주시면 됩니다!

 

 

 

 

 







이제 매크로가 제대로 지정되었는지 확인해봐야겠죠?😃

 

 

사진을 넣을 셀을 클릭한 후,

 

매크로가 지정된 버튼을 클릭하면

 

사진 선택 팝업이 자동으로 나타납니다.

 

적절한 사진을 선택한 후 열기를 클릭하면

 

아래 예시와 같이 선택한 셀에

 

선택한 사진이 자동으로 들어가게 됩니다!📸

 

 

 

 

 







위와 같이 사진이 잘 삽입되었고

 

파일을 저장한 후 메일로 발송하더라도

 

사진을 따로 첨부할 필요가 없는 파일이 완성되었습니다!

 

 

VBA 코드는 복사해서 사용할 수 있도록 

 

아래에 다시 한 번 적어드릴게요!💌

 

 

 

 

 

 Sub 단추3_Click()

 

    Dim strFile As String

    Dim sht As Worksheet

    Dim rngInsert As Range

    

    Set sht = ActiveSheet

 

    strFile = Application.GetOpenFilename(filefilter:="모든파일(*.*),*.*", Title:="사진선택")

    If strFile = "False" Then  MsgBox "사진이 선택되지 않았습니다.", , "비즈폼"

        Exit Sub

    End If

   

    Set rngInsert = Selection

    sht.Shapes.AddPicture Filename:=strFile, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _

    Left:=rngInsert.Left, Top:=rngInsert.Top, Width:=rngInsert.Width, Height:=rngInsert.Height

 

 End Sub

 

 

댓글(0)

추천서식