목차
1. 엑셀에서 QR 코드가 필요한 이유
2. 엑셀에서 QR 코드 생성 기본 설정
3. 셀 값 기반 QR 코드 생성 및 삽입 방법
4. Q&A
5. 관련 태그
엑셀에서 QR 코드가 필요한 이유
QR 코드는 다양한 정보를 손쉽게 전달할 수 있는 디지털 링크입니다. 최근에는 출입 명부, 상품 정보, 설문조사 링크, 교육 자료 등에서 자주 활용되고 있습니다. 특히 엑셀에서 특정 셀의 내용을 QR 코드로 변환하여 바로 옆 칸에 삽입하면 관리가 훨씬 효율적입니다.
예를 들어, A열에 직원 ID나 링크를 입력하고 B열에 해당 QR 코드를 자동 생성해 출력하거나 인쇄할 수 있어 실무에서 매우 유용합니다. 이 글에서는 엑셀에서 셀 데이터를 기반으로 QR 이미지를 바로 생성하는 방법을 아주 친절하게 안내드릴게요.
엑셀에서 QR 코드 생성 기본 설정
엑셀 자체는 기본적으로 QR 생성 기능을 지원하지 않기 때문에 외부 도구나 매크로(VBA)를 활용해야 합니다. 대표적인 방법은 다음과 같습니다:
- VBA 코드 활용 – 구글 차트 API를 통해 QR 코드 이미지 링크를 받아오는 방식
- QR 생성 사이트 API 활용 – 무료 이미지 API로 URL을 호출하여 이미지 삽입
- Add-in(추가 기능) – Microsoft 365에서 설치 가능한 QR 생성 Add-in 사용
이 글에서는 VBA를 통해 셀 데이터를 QR 코드로 변환하여 바로 옆 셀에 이미지 삽입하는 방법을 중심으로 설명드리겠습니다.
셀 값 기반 QR 코드 생성 및 삽입 방법
엑셀 VBA를 사용하면 아래와 같이 셀의 텍스트 값을 기반으로 자동으로 QR 코드를 생성하고, 옆 셀에 삽입할 수 있습니다.
1단계: VBA 편집기 열기
Alt + F11
을 눌러 엑셀 VBA 편집기를 실행합니다.
왼쪽 탐색창에서 원하는 워크북을 우클릭 > 삽입 > 모듈을 클릭합니다.
#If VBA7 Then Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" ( _ ByVal pCaller As LongPtr, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As LongPtr, _ ByVal lpfnCB As LongPtr) As Long #Else Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" ( _ ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long #End If Sub GenerateQRCodeAutoFit() Dim rng As Range Dim cell As Range Dim url As String Dim tmpPath As String, tmpFile As String Dim ret As Long Dim img As Picture Dim targetCell As Range Dim imgWidth As Single, imgHeight As Single ' 작업 범위 (A2:A10) 설정 Set rng = Range("A2:A10") tmpPath = Environ("TEMP") & "\" For Each cell In rng If cell.Value <> "" Then url = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" & _ Application.WorksheetFunction.EncodeURL(cell.Value) tmpFile = tmpPath & "qr_" & cell.Row & ".png" ret = URLDownloadToFile(0, url, tmpFile, 0, 0) If ret = 0 Then Set targetCell = cell.Offset(0, 1) ' 기존 이미지 있으면 삭제 Dim shp As Shape For Each shp In targetCell.Worksheet.Shapes If Not Intersect(shp.TopLeftCell, targetCell) Is Nothing Then shp.Delete End If Next shp ' 이미지 삽입 Set img = targetCell.Worksheet.Pictures.Insert(tmpFile) ' 이미지 크기 추출 imgWidth = img.Width imgHeight = img.Height ' 셀 크기를 이미지에 정확히 맞추기 With targetCell .RowHeight = imgHeight .ColumnWidth = imgWidth / 5.3 ' 엑셀의 열 너비는 픽셀이 아님 End With ' 이미지 위치 맞춤 With img .Left = targetCell.Left .Top = targetCell.Top .Placement = xlMoveAndSize End With Else MsgBox "? 다운로드 실패: " & cell.Value End If End If Next cell MsgBox "? 모든 QR 코드가 셀 크기에 딱 맞게 삽입되었습니다!", vbInformation End Sub
위 코드는 A2~A10 범위에 있는 셀의 내용을 기반으로 B열에 QR 이미지를 자동 삽입합니다. 코드 실행은 VBA 창에서 F5
키를 눌러 수행하거나, 엑셀 리본 메뉴에 버튼을 연결할 수도 있습니다.
코드 실행 후 A열에 텍스트가 입력되어 있다면, 그 옆 셀(B열)에 해당 URL을 기반으로 한 QR 이미지가 삽입됩니다. 이 이미지는 일반 그림으로 취급되며, 드래그 이동 또는 크기 조정도 가능합니다.
Q&A
A1: 삽입된 이미지는 셀과 연결되지 않으며, 셀 위치 변경 시 직접 이동해줘야 합니다.
A2: 네, 구글 차트 API 기반이므로 어떤 QR 스캐너에서도 정상 인식됩니다.
A3: 외부 Add-in(추가 기능)을 설치하거나 로컬 이미지 삽입 방식도 있으나 실시간 생성은 API가 유리합니다.
'유용한 팁' 카테고리의 다른 글
네이버 블로그 구글 검색 (0) | 2025.04.15 |
---|---|
프로토콜 A2A: 차세대 통신 혁신 (0) | 2025.04.10 |