관련: 지식인
엑셀에서 그림을 삽입하면 기본으로 크기조절 옵션이 설정되는데
그림을 여러개 삽입할 때 기본 속성을 원하는 대로 설정하고 싶은 경우입니다.
1. VBA를 이용할 수 있습니다.
Alt+F11 창에서 삽입 > 모듈을 추가하고 아래 내용을 붙여넣습니다.
코드창을 닫고 원하는 셀을 선택하고 Alt+F8누르고 InsertPicureFileHere 를 실행해서
원하는 사진을 현재 셀위에 삽입하고 '크기조절 및 이동' 옵션으로 설정합니다.
클립보드 사진을 삽입하려면 InsertClipboardPictureHere 를 실행합니다.
Sub InsertPictureFileHere()
Dim sht As Worksheet
Dim rng As Range
Dim shp As Shape
Dim m As Single
Dim sFile As Variant
ChDir ThisWorkbook.Path & Application.PathSeparator
'sFile = Application.GetOpenFilename("Image File, *.jpg;*.png;*.gif;*.emf;*.svg")
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Clear
.Filters.Add "Image File", "*.jpg;*.png;*.gif;*.emf;*.svg"
.InitialFileName = ThisWorkbook.Path & Application.PathSeparator
If .Show = -1 Then sFile = .SelectedItems(1)
End With
If sFile <> "" Then
Set rng = Application.ActiveCell.MergeArea
Set sht = rng.Parent
For i = sht.Shapes.Count To 1 Step -1
If sht.Shapes(i).TopLeftCell Is ActiveCell Then
sht.Shapes(i).Delete
End If
Next i
m = 1
sht.Shapes.AddPicture sFile, 0, 1, rng.Left + m, rng.Top + m, rng.Width - 2 * m, rng.Height - 2 * m
'Set shp = sht.Shapes.AddPicture2(sFile, 0, 1, rng.Left + m, rng.Top + m, rng.Width - 2 * m, rng.Height - 2 * m, msoPictureCompressDocDefault)
Set shp = sht.Shapes(sht.Shapes.Count)
shp.Name = sFile
'shp.Locked = False
'shp.Placement = 3 'xlFreeFloating
'shp.Placement = 2 'xlMove
shp.Placement = 1 'xlMoveAndSize
End If
End Sub
Sub InsertClipboardPictureHere()
Dim sht As Worksheet
Dim rng As Range
Dim shp As Shape
Dim m As Single
'CommandBars.ExecuteMso "Paste"
Set sht = ActiveSheet
'sht.PasteSpecial 0 ' 0:PNG, 1:JPG 3:EMF 5: Office Object
sht.Paste ActiveCell
Set shp = sht.Shapes(sht.Shapes.Count)
If shp.Type = msoPicture Then
Set rng = Application.ActiveCell.MergeArea
For i = sht.Shapes.Count To 1 Step -1
If sht.Shapes(i).TopLeftCell Is ActiveCell Then
If Not sht.Shapes(i) Is shp Then sht.Shapes(i).Delete
End If
Next i
m = 1
shp.LockAspectRatio = msoFalse
shp.Left = rng.Left + m
shp.Top = rng.Top + m
shp.Width = rng.Width - 2 * m
shp.Height = rng.Height - 2 * m
shp.Name = "Pic_" & rng.Address(0, 0)
'shp.Locked = False
'shp.Placement = 3 'xlFreeFloating
'shp.Placement = 2 'xlMove
shp.Placement = 1 'xlMoveAndSize
End If
End Sub
매크롤 실행 화면:
위 두가지 매크로를 빠른 실행에 추가해서 Alt+숫자키로 실행할 수도 있습니다.
사진의 속성이 '크기와 위치 조절' 옵션으로 설정됩니다.
2. VBA매크로의 경우 xlsm 파일이 항상 열려 있어야 하고
아니면 추가기능으로 설치하고 리본 아이콘 등의 인터페이스를 추가해야 합니다.
AutoHotkey를 이용하면 단축키 F3을 누르면 로컬 파일을 불러와서 삽입하고
F6을 누르면 클립보드 이미지를 현재 셀에 붙여넣고
그 다음 그림의 크기조절 옵션을 '크기 및 위치 조절' 옵션으로 설정해줍니다.
첨부한 오토핫키 실행파일을 실행하면 일단 아래 알림창이 뜹니다.

확인을 누르면 상태표시줄 트레이로 최소화됩니다.
이제 엑셀 창에서 원하는 셀을 선택하고 F3이나 F6을 누르면
로컬 파일을 삽입하거나 클립보드 이미지를 현재 셀위에 주어진 여백(1)으로 삽입하고
크기와 위치 조절 옵션으로 조정합니다.

실행파일이름을 _1.exe 를 _5.exe로 바꾸고 실행하면 여백을 5로 변경합니다.
종료하려면 트레이의 아이콘을 우클릭하고 종료하거나 Win+X를 누르면 됩니다.

오토핫키 소스와 실행파일 첨부합니다.
'AutoHotKey' 카테고리의 다른 글
도형(개체)을 표의 셀 한 가운데 위치시키기 (0) | 2025.04.24 |
---|---|
엑셀 페이지방향 바꾸는 단축키 (0) | 2025.04.12 |
대화창이나 윈도우가 화면을 벗어났을 때 창위치 드래그 (0) | 2024.11.25 |
PPT편집창에서 더블클릭으로 링크된 파일 실행하기 (1) | 2024.07.15 |
파워포인트 표 셀 이동 빠른 단축키 (0) | 2024.05.05 |
폰트 색깔과 형광펜 색깔을 단축키로 빠르게 변경하기 (2) | 2024.03.23 |
발표자 보기 도구 창에서 '여러 슬라이드 보기' 유지하기 (0) | 2023.11.22 |
파워포인트 원하는 슬라이드로 바로 이동하기 (0) | 2023.07.02 |
최근댓글