공지사항
태양광 건축공사 현장사진 넣는 엑셀 VBA(윤석렬 대통령의 비상계엄 응원합니다.)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
오피스 프로그램에 사진 넣는 행위는 별거 아니다.
하지만, 칸 크기에 맞게 넣는 것은,
특히나 엑셀은 힘들다.
어떤 분은 ALT를 눌러 조절하면, 잘 들어간다. 하는데,
한셀에서는... 안 된다.
그래서 우리는 VBA를 이용한다.
당초에 위 코드를 짜신 분은
사진 이름과 엑셀 상의 이름이 동일하면, 그 옆에 사진을 넣도록 만들었는데,
그럼 작업을 두번 하는 듯 하여(사진 파일명 이름 변경 작업)
탐색기를 열어 원하는 곳에 찍어 넣도록 만들었다.
VBA를 실행하기 위해서는,
ALT + F8을 눌러야 하는데,
키 위치가 애매하여 버튼을 누르면 실행하는 형식으로 만들 되,
연속적인 사진 넣기를 위해,
탐색기를 취소하지 않으면, 계속 넣을 수 있게끔 만들었다.
통합한 셀의 경우에도 적용이 되니,
사용하고 싶으면 사용해라.
Sub InsertPictures()
Dim ws As Worksheet
Dim selectedCell As Range
Dim imagePath As String
Dim i As Integer
Dim pictureShape As Shape
Dim mergeArea As Range
Dim fileDialog As FileDialog
Dim lastPath As String
' 현재 시트 참조
Set ws = ActiveSheet
i = 0
lastPath = ActiveWorkbook.Path ' 기본 경로를 현재 워크북 경로로 설정
' 반복문을 통해 셀을 하나씩 선택하고 이미지 삽입
Do While Cells(6 + i, 4).Value <> ""
' FileDialog 객체 생성
Set fileDialog = Application.FileDialog(msoFileDialogFilePicker)
With fileDialog
.Title = "이미지 파일 선택"
.Filters.Add "이미지 파일", "*.jpg;*.jpeg;*.png;*.gif;*.bmp", 1
.AllowMultiSelect = False ' 한 번에 하나의 파일만 선택
.InitialFileName = lastPath ' 초기 경로 설정
' 파일 선택 창 표시
If .Show = -1 Then ' 사용자가 파일을 선택했을 때
imagePath = .SelectedItems(1)
lastPath = CreateObject("Scripting.FileSystemObject").GetParentFolderName(imagePath) ' 선택된 경로 저장
Else
MsgBox "이미지 선택이 취소되었습니다. 매크로가 종료됩니다."
Exit Sub
End If
End With
' 사용자가 셀을 선택할 때까지 대기
Set selectedCell = Application.InputBox("이미지를 삽입할 셀을 선택하세요.", Type:=8)
' 선택된 셀 범위가 유효한지 확인
If selectedCell Is Nothing Then
MsgBox "셀 선택이 취소되었습니다. 매크로가 종료됩니다."
Exit Sub
End If
' 병합된 셀의 전체 범위 참조
Set mergeArea = selectedCell.MergeArea
' 이미지 삽입
Set pictureShape = ws.Shapes.AddPicture( _
Filename:=imagePath, _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoCTrue, _
Left:=mergeArea.Left, _
Top:=mergeArea.Top, _
Width:=mergeArea.Width, _
Height:=mergeArea.Height _
)
' 이미지의 비율을 맞추지 않고 셀의 크기에 맞게 조정
pictureShape.LockAspectRatio = msoFalse
' 셀 안에 이미지가 제대로 들어가도록 위치 조정
With pictureShape
.Top = mergeArea.Top
.Left = mergeArea.Left
.Width = mergeArea.Width
.Height = mergeArea.Height
End With
i = i + 1
Loop
MsgBox "모든 작업이 완료되었습니다."
End Sub
사용법은 다음에!
사실, 요즘 같은 날은 윤석렬 대통령 비상계엄에 대해 언급해야,
사람들을 끌고 올 수 있는데,,,
좀 아쉽다.
그래서 잠깐 서술하고자 한다.
ㅋ
나는 윤석렬의 비상계엄 찬성한다.
어제 드라마를 보고 있는데, 대통령이 비상계엄 연설을 하는 것이다.
처음에는 아이고... 하소연 할 때가 없어, 방송에 대가 하나?
싶었지만, 비상계엄이라는 말에 그의 표정을 주목하였고,
결의에 찬, 진심을 느낄 수 있었다.비상계엄은 헌법에서 보장한 대통령의 권한이며,
이를 마치 쿠데타와 연계하는데, 윤대통령이 한 비상계엄은 현실을 바라보라는 의미가 강하다.
얼마 전 민노총 간부가 간첩인 사실이 들어났다.
‘간첩 혐의’ 민주노총 간부 3명, 5~15년형 법정 구속
그런데도 민주노총은 대통령 탄핵 해야 한다며, 집회를 열고 있다.
최소한 자숙하는 모습을 보여야 하는데, 그렇지 않고 있다.
나라 꼴이 말이 아니다.
이와 더불어, 범죄자들이 국회의원이 되어, 대표가 되어,
나라를 어지럽히고 있다.
행정과 사법을 마비시키고, 나아가 헌재까지 마비 시켰다.
금번 비상계엄으로 윤석렬 대통령을 탄핵한다고 하는데,
더불어 민주당이 마비 시킨 헌재가 어떻게 판결을 내겠는가?
9명 중 최소 인원인 7명이 안 되는데...
이에 더불어 민주당은 이제서야 그동안 미뤄왔던 헌법 재판관을 임명하고 있다.
민주 “헌법재판관 임명동의안 이르면 30일 본회의서 처리”|동아일보
그동안 범죄자 이재명을 방탄하기 위해서,
이재명을 소송하고 있는 검사를 탄핵하였다.
왜?
헌재가 6명만 있으니, 판결을 내릴 수가 없고, 이에 탄핵이 지속 될 수 밖에 없기 때문이다.
하지만, 탄핵 동안은 이재명 담당 검사는 직무해제 이다.
입법으로 국정을 농단 하던, 더불어 민주당과 이재명은,
이제 대통령 탄핵을 위해서!
국민들의 눈을 의식해서 이제서야 헌법재판관 임명에 나서고 있다.
댓글
댓글 쓰기