티스토리 뷰
동기
엑셀에서 셀 병합을 단축키로 하고 싶었는데, 찾아도 잘 나오질 않는다.
방법이 없는 것인지 잘 모르겠지만, 그래서 더 찾아보니 선택한 셀 안에 동일한 값이 들어있으면 셀을 병합해주는 스크립트가 있었다.
방법
1. 메뉴바에 '보기'탭에서 '매크로'를 선택한 뒤에 '매크로 보기'를 클릭한다.
2. 매크로 이름에 아무거나 입력해주면 '만들기' 버튼이 활성화되는데, '만들기' 버튼을 클릭한다.
3. 새로운 창이 뜨게 되는데, 그 창 안에 아무렇게 입력한 이름으로 함수가 만들어지게 되는데, 전체선택(ctrl+a)한 뒤에 아래 스크립트를 붙여넣는다.
Sub MergeMacro()
' 선택 영역에서 인접 셀에 같은 값이 있는 경우 셀을 병합함' If Selection.Cells.Count < 2 Then MsgBox "작업할 범위를 먼저 선택하세요"
Exit Sub
End If
Dim iRow As Integer, iCol As Integer, tR As Integer, tC As Integer, sVal As String Dim rMax As Integer, cMax As Integer, iCount As Integer, cSave As Integer
Application.DisplayAlerts = False Application.ScreenUpdating = False
iRow = Selection.Cells(1).Row: iCol = Selection.Cells(1).Column
cSave = iCol
rMax = Selection.Cells(Selection.Cells.Count).Row cMax = Selection.Cells(Selection.Cells.Count).Column
tR = 0: tC = 0: iCount = 0
Do While iRow <= rMax
sVal = Cells(iRow, iCol)
' 현재 셀이 병합 셀이 아닌경우' If Cells(iRow, iCol).Cells.Count = 1 And Trim(Cells(iRow, iCol)) <> "" Then ' 우측 연속 셀 검사' Do While Cells(iRow, iCol + tC + 1) = sVal
tC = tC + 1
Loop If tC > 0 Then ' 우측 병합대상 있는 경우' Do While Cells(iRow + tR + 1, iCol) = sVal For i = 0 To tC
If Cells(iRow + tR + 1, iCol + i) <> sVal Then Exit Do
Next i
tR = tR + 1
Loop Range(Cells(iRow, iCol), Cells(iRow + tR, iCol + tC)).Merge iCol = iCol + tC iCount = iCount + 1
Else
Do While Cells(iRow + tR + 1, iCol) = sVal
tR = tR + 1
Loop
If tR > 0 Then Range(Cells(iRow, iCol), Cells(iRow + tR, iCol)).Merge iCount = iCount + 1 End If
iCol = iCol + 1
End If
tC = 0: tR = 0
Else
Cells(iRow, iCol).Offset(0, 1).Select
iCol = Selection.Column
End If
If iCol > cMax Then
iCol = cSave: iRow = iRow + 1
End If Loop
Application.DisplayAlerts = True Application.ScreenUpdating = True
MsgBox Trim(iCount) & "개의 병합셀이 만들어졌습니다."
End Sub
|
참고
'OS별 깨알 팁 > Windows' 카테고리의 다른 글
오늘의 팁 - 윈도우 MX 마스터 마우스 없이도 좌우 휠 스크롤 가능해요. (10) | 2023.01.31 |
---|---|
[환경변수] CMD로 환경변수 설정(환경변수가 제대로 먹히지 않을 때) (0) | 2019.11.21 |
[OS][Windows] 지정되지 않은 오류입니다. (0) | 2017.11.29 |
[OS] OS별 시리얼 번호(Serial Number) 확인하기 (0) | 2017.01.06 |
[네트워크] 네트워크 유/무선 우선순위 (0) | 2015.08.19 |
mail.worksmobile.com outlook 설정 방법 (0) | 2015.07.29 |