본문 바로가기

엑셀

(115)
[엑셀 매크로/VBA] 모든 워크시트에 같은 암호 적용하기 매크로를 쓰는 자세한 방법은 문서 맨 아래 링크를 참고하세요 :) 모든 워크시트에 같은 암호를 걸어줍니다. - 시트가 너무 많다면, 아래 매크로로 암호를 설정해보세요. - 확실한 설정을 위해, 암호를 2번 입력하도록 되어있습니다. =========아래를 붙여넣기 하세요========== Sub Protect_worksheet() PWD = InputBox("암호를 입력하세요.") PWD2 = InputBox("암호를 다시 입력하세요.") If PWD = PWD2 Then For Each WS In ThisWorkbook.Worksheets WS.Protect Password:=PWD Next Else MsgBox ("암호가 일치하지 않습니다.") Exit Sub End If MsgBox ("모든 shee..
[Don't] 데이터에 비해 용량이 너무 큰 엑셀에는 무엇이 숨어있을까? 회사에서 가장 흔하게, 빈번하게 받는 질문중 하나가 바로 이거다. "엑셀이 너무 느려요... 데이터는 몇 개 없는데, 왜 그래요?" "저장 버튼 누르면 한 세월이에요. 제가 함수를 너무 많이 썼나요?" "엑셀이 첨부가 안돼요. 데이터에 비해 용량이 왜 이렇게 클까요?" 혹시나 아래 내용을 놓치고 있지 않은지, 확인해보라. [엑셀 바닥에서 숨쉬는 백만개의 행!] 1. 진단 이게 무슨 소리인가? 엑셀 바닥이라니? 첨부의 파일은, 데이터에 비해 용량이 큰 대표 예제이다. 실제 데이터는 매우 적은데, 무려 5M를 차지하고 있는 것이다. 무엇이 문제일까? 이 엑셀에서 다른 점이 하나 있다. 바로 "스크롤"이다. 왜 이렇게 스크롤이 늘어나 있는지 짐작할 수 있겠는가? 맞다. 65,536번째 (XFD) 열까지, 1,..
[엑셀 매크로/VBA] 셀 테두리를 따라서 셀 병합하기 엑셀로 해결할 수 없는 기능은 VBA/매크로를 쓰시는게 맞습니다. - 매크로를 쓰는 자세한 방법은 문서 맨 아래 링크를 참고하세요 :) 한 줄에 대해, 빈 칸을 세로로 전부 병합해서 보여줍니다. - 테두리로 되어있는 셀을 병합해서 보여주고 싶다면 활용하세요. - 단, 세로로만 작동합니다 (위/아래 테두리만 보고 병합합니다). *(주의) 매크로로 바뀌는 내용은 "되돌리기 (Ctrl + Z)"로 복구되지 않습니다. 꼭! 사본으로 진행하세요. =========아래를 붙여넣기 하세요========== Sub Filldown_Upper_Lower_Border() '서로 다른 column에 대해 동일한 데이터를 입력하는 경우가 있지는 않을 것으로 가정합니다. 'Column 단위로 위아래만 조사 Set StRng =..
[엑셀 매크로/VBA] 빈 칸이 끝날때까지 셀 병합하기 엑셀로 해결할 수 없는 기능은 VBA/매크로를 쓰시는게 맞습니다. - 매크로를 쓰는 자세한 방법은 문서 맨 아래 링크를 참고하세요 :) 한 줄에 대해, 빈 칸을 세로로 전부 병합해서 보여줍니다. - 셀을 병합해서 보여주고 싶다면 활용하세요. *(주의) 매크로로 바뀌는 내용은 "되돌리기 (Ctrl + Z)"로 복구되지 않습니다. 꼭! 사본으로 진행하세요. =========아래를 붙여넣기 하세요========== Sub Mergedown() Set StRng = Application.InputBox("범위", "어디서부터 시작할까요? (가장 첫번째 셀을 골라주세요)", Selection.Address, Type:=8) Set EdRng = StRng EndNote = StRng.CurrentRegion.Ro..
[엑셀 매크로/VBA] 이름을 모두 삭제 매크로를 쓰는 자세한 방법은 문서 맨 아래 링크를 참고하세요 :) 지금 엑셀시트에 있는 쓸데없는 이름을 모두 제거해줍니다. - 이름은 잘 설정해야 오류가 나지 않습니다. - 외부에서 참조하게끔 설정된 이름들은 하나같이 아래와 같은 오류를 만들게 됩니다. =========아래를 붙여넣기 하세요========== Sub DeleteNames() Dim n As Name Dim lngCount As Long On Error Resume Next lngCount = ActiveWorkbook.Names.Count For Each n In ActiveWorkbook.Names n.Visible = True n.Delete Next n MsgBox "총 " & lngCount & "개의 [이름] 중, " & lng..