VBA 처리속도 올릴방법이없을까요?ㅠㅠ

VBA
작성자
lo****
작성일
2022-11-22 16:57
조회
63
엑셀버전 : M365

운영체제 : 윈도우10

재고관리 영상을 보면서 작업을하였는데

폼 실행 시 마우스가 끈기면서 돌아니는 모습( 상당히 반응속도가 느립니다.)

그러다가 엑셀이 종료가 되거나 하는데.. 이거 속도개선하는방법이없을까요

아니면 무엇이문제인지 알수가없습니다..

 

Private Sub btnSelect_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
SelectProduct
End Sub

Private Sub lstMain_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
SelectProduct
End Sub

Private Sub txtSearch_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Update_lstMain
End Sub

Private Sub UserForm_Initialize()
Update_lstMain
End Sub

'------------------------------------------------
Sub SelectProduct()
Dim Arr As Variant
Arr = Get_ListItm(Me.lstMain)
With shtMain
.Range("A21").Value = Arr(0)
.Range("C21").Value = Arr(3)
.Range("D21").Value = Arr(4)
.Range("C22").Value = Arr(5)
.Range("C23").Value = Arr(6)
.Range("C24").Value = Arr(12)
.Range("C25").Value = Arr(9)
.Range("C26").Value = Arr(7)
.Range("C27").Value = Arr(8)
.Range("C28").Value = Arr(16)
.Range("C29").Value = Arr(13)
.Range("C30").Value = Arr(14)
.Range("C31").Value = Arr(11)
End With

Unload Me

End Sub

Sub Update_lstMain()
Dim DB As Variant
Call faster
DB = Get_DB(shtItem)
DB = Connect_DB(DB, 3, shtCategory, "품목구분")
DB = Connect_DB(DB, 2, shtCustomer, "거래처명")
DB = Filtered_DB(DB, Me.txtSearch.Value)
Update_List Me.lstMain, DB, "0,0,0,20,90,100,150,50,80,70,0,40,50,0,60,60,70,0"
End Sub

'---------------------------------------

'유저폼에 추가한 버튼에 개수만큼 아래 명령문을 유저폼에 추가한 뒤, btnClose를 버튼 이름으로 변경합니다.
Private Sub btnSelect_Exit(ByVal Cancel As MSForms.ReturnBoolean)
OutHover_Css Me.btnSelect
End Sub

Private Sub btnSelect_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
OnHover_Css Me.btnSelect
End Sub

Private Sub btnSelect_Enter()
OnHover_Css Me.btnSelect
End Sub

'아래 코드를 유저폼에 추가한 뒤, "btnXXX, btnYYY"를 버튼이름을 쉼표로 구분한 값으로 변경합니다.
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim ctl As Control
Dim btnList As String: btnList = "btnSelect" ' 버튼 이름을 쉼표로 구분하여 입력하세요.
Dim vLists As Variant: Dim vList As Variant
If InStr(1, btnList, ",") > 0 Then vLists = Split(btnList, ",") Else vLists = Array(btnList)
For Each ctl In Me.Controls
For Each vList In vLists
If InStr(1, ctl.Name, Trim(vList)) > 0 Then OutHover_Css ctl
Next
Next
If Now() >= unlockTime And Me.lstMain.Enabled = False Then lstMain.Enabled = True

End Sub

'커서 이동시 버튼 색깔을 변경하는 보조명령문을 유저폼에 추가합니다.
Private Sub OnHover_Css(lbl As Control): With lbl: .BackColor = RGB(211, 240, 224): .BorderColor = RGB(134, 191, 160): End With: End Sub
Private Sub OutHover_Css(lbl As Control): With lbl: .BackColor = &H8000000E: .BorderColor = &H8000000A: End With: End Sub

Private Sub lstMain_Exit(ByVal Cancel As MSForms.ReturnBoolean)
UnhookListBoxScroll
End Sub
Private Sub lstMain_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
HookListBoxScroll Me, Me.lstMain
End Sub

 

스크랩
공유
전체 3

  • 2022-11-22 22:49

    @lo**** 님 가상 상위에서 실행되는 명령문 앞 뒤로 화면업데이트, 이벤트업데이트 설정을 끄면 속도를 개선할 수 있습니다.

    Application.ScreenUpdating = false
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = false

    '명령문...

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True

    비슷한 내용의 질문이 있어서 링크 달아드리니 참고해보세요

    https://www.oppadu.com/question/?mod=document&uid=15394


    • 2022-11-23 15:06

      @고양이냐옹 님 이걸그냥 삽입하면되나요? 변함이거의없는데..아무리 찾아도 보이질않네요..


      • 2022-11-24 17:00

        @lo**** 님 마우스 끊김이 불편하신거라면..

        '---------------------------------------

        '유저폼에 추가한 버튼에 개수만큼 아래 명령문을 유저폼에 추가한 뒤, btnClose를 버튼 이름으로 변경합니다.

        이 명령문 밑에 부분을 모두 제거하고 실행해보세요


전체 8,510
번호 카테고리 제목 작성자 작성일 추천 조회
알림
「🎉 올해의 책 투표」 '진짜쓰는 실무엑셀' 이 후보에 선정되었습니다! (👉깜짝 이벤트) (51)
오빠두엑셀 | 2022.11.07 | 추천 23 | 조회 7882
오빠두엑셀 2022.11.07 23 7882
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (105)
오빠두엑셀 | 2021.10.28 | 추천 135 | 조회 8506
오빠두엑셀 2021.10.28 135 8506
44963 VBA
New 일정간격마다 모두재계산&파일 열자마자 매크로 실행
KangU | 20:54 | 추천 0 | 조회 3
KangU 20:54 - 3
44962 함수/공식
New 누적 합계 구하기 함수 관련 엑셀파일
짱구 | 20:15 | 추천 0 | 조회 7
짱구 20:15 - 7
44959 함수/공식
New 안녕하세요! 엑셀 뉴비, 고수분들께 도움을 구하고자 합니다 ㅠㅠ 엑셀파일첨부파일 (1)
U_ho | 18:45 | 추천 0 | 조회 13
U_ho 18:45 - 13
44956 함수/공식
New 고수님들 도와주세요 (1)
LUKE. | 17:58 | 추천 0 | 조회 15
LUKE. 17:58 - 15
44955 함수/공식
New 따로 수정이나 새로고침 하지않아도 실시간으로 계산값이 변경되는 날짜계산기 (2) 답변완료
KangU | 17:45 | 추천 0 | 조회 20
KangU 17:45 - 20
44953 함수/공식
New 엑셀 날짜 함수 사용시 날짜 표시 안되는 이슈 첨부파일 (2)
junee562 | 16:59 | 추천 0 | 조회 19
junee562 16:59 - 19
44950 함수/공식
New vlookup을 활용한 여러 조건 시 결과값을 불러오고 싶습니다. 엑셀파일 (1)
DBOX | 16:50 | 추천 0 | 조회 25
DBOX 16:50 - 25
44946 함수/공식
New 정산금액을 공문에 참조하려고 하는데 n/a가 뜹니다. 엑셀파일 (3)
야근쟁이 | 16:17 | 추천 0 | 조회 22
야근쟁이 16:17 - 22
44941 함수/공식
New COUNT 함수 관련 2가지 조건의 수를 구하고 싶습니다. 첨부파일 (2) 답변완료
2039290jf1 | 14:11 | 추천 0 | 조회 24
2039290jf1 14:11 - 24
44940 VBA
New 엑셀 매크로 AutoFill 관련 문의 (1)
원더우먼 | 12:53 | 추천 0 | 조회 29
원더우먼 12:53 - 29
44938 기능/도구
New 온라인그림 선택이 안되요. 첨부파일 (1)
굿걸♡ | 11:57 | 추천 0 | 조회 22
굿걸♡ 11:57 - 22
44937 함수/공식
New 다중조건 if 관련 문의 (2) 답변완료
지도현 | 11:50 | 추천 0 | 조회 37
지도현 11:50 - 37
44935 함수/공식
New 엑셀 2007,2010 오프라인 도움말파일 구해요
나야 | 11:41 | 추천 0 | 조회 19
나야 11:41 - 19
44932 VBA
New VBA FIND를 통해서 일치하는 값 찾을때까지 검색 후 만약에 없으면 해당셀에 찾는값 없음 넣기 (1)
고바마 | 11:02 | 추천 0 | 조회 34
고바마 11:02 - 34
44930 VBA
New vba를 이용하여 수식 결과값 추출 시트를 만들고 싶습니다. 첨부파일 (1)
코모 | 10:26 | 추천 0 | 조회 42
코모 10:26 - 42
44929 함수/공식
New [관심]!!경우의수 적용하여, 값 판단법 좀 알려주세요..ㅜ 엑셀파일첨부파일 (5)
ak스타 | 10:22 | 추천 0 | 조회 28
ak스타 10:22 - 28
44927 함수/공식
New 다중 sumifs 기타 값 계산 엑셀파일첨부파일 (3) 답변완료
선크 | 10:18 | 추천 0 | 조회 33
선크 10:18 - 33
44915 VBA
New 괄호안의 숫자 합계 구하기 VBA 또는 수식 엑셀파일첨부파일 (4) 답변완료
007 | 2022.11.27 | 추천 0 | 조회 62
007 2022.11.27 - 62
44913 함수/공식
New 함수 결과값이 이상합니다 첨부파일 (1)
엄기용 | 2022.11.27 | 추천 0 | 조회 31
엄기용 2022.11.27 - 31
44907 함수/공식
New 시간만 구하는 방법.. 첨부파일 (4) 답변완료
candle0723 | 2022.11.27 | 추천 0 | 조회 38
candle0723 2022.11.27 - 38
44904 문서서식
New 표시형식 문의 드립니다 (1)
거꾸로문 | 2022.11.26 | 추천 0 | 조회 29
거꾸로문 2022.11.26 - 29
44901 VBA
New 안녕하세요. vba로 단위 변환 질문드립니다.
Jes | 2022.11.26 | 추천 0 | 조회 38
Jes 2022.11.26 - 38
44899 차트/그래프
New 슬라이서 서식을 변경 한 후, 다른 엑셀 파일에서도 사용할 수 있는 방법이 있을까요?
twou**** | 2022.11.26 | 추천 0 | 조회 27
twou**** 2022.11.26 - 27
44896 VBA
New 여러 문자들 중 참조 문자에 있는 값 찾기 vba 엑셀파일첨부파일 (4)
007 | 2022.11.26 | 추천 0 | 조회 61
007 2022.11.26 - 61
44892 기능/도구
New 필터랑 행 숨기기 된 상태에서 자동채우기 안 되나요?
오리파 | 2022.11.25 | 추천 0 | 조회 25
오리파 2022.11.25 - 25
44887 함수/공식
New 다중조건을 만족하는 여러개의 값 구하는 함수식 문의드립니다. (1)
함수시르미 | 2022.11.25 | 추천 0 | 조회 53
함수시르미 2022.11.25 - 53
44886 VBA
New 엑세스 및 엑셀 연동 VBA INSERT구문 질문 엑셀파일
H.B | 2022.11.25 | 추천 0 | 조회 33
H.B 2022.11.25 - 33
44885 함수/공식
New 엑셀로 전투 시뮬레이션을 만들 수 있을까요? (3)
네버 | 2022.11.25 | 추천 0 | 조회 57
네버 2022.11.25 - 57
44881 VBA
New VBA 링크 설정시 현재시트로 설정하는법 첨부파일 (2)
엑셀왕이될거야22 | 2022.11.25 | 추천 0 | 조회 31
엑셀왕이될거야22 2022.11.25 - 31
44878 함수/공식
New 인덱스 매치 시 범위 합계구하기 엑셀파일 (3) 답변완료
야근쟁이 | 2022.11.25 | 추천 0 | 조회 47
야근쟁이 2022.11.25 - 47