1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

반갑습니다,아별님

 

진행바 응용을 하려고 하니 잘 안되어 질문 드립니다

 

아별님께서 답변주신 진행바 파일로 응용

 

1.진행바가 진행되는 동안 다른 명령을 실행 하려고 합니다

2.다른 메뉴가 실행되는 동안에 진행바가 표시 되게

 

유첨파일 참조해 주십시요


댓글 '3'

profile

[레벨:30]아별

2013.02.04 01:00:32
*.130.73.75

맑은이슬님.. 반갑습니다.

다른분에게 했던 답변을 참고하셨군요..

훈늉한 자세입니다. ^^)b

 

답변 하나 하나에 정성한 다한 보람이 있네요.. ^_^;;

 

첨부파일을 참고하시기 바랍니다.

다운받기 : abyul.com_progressBar_20130130-3.xlsm

 

대부분 작업이 오래 걸리는 작업은 순환문이기때문에..

For문이나 While문의 변수를 사용해서 진행바를 표시하면 될 것 같습니다.

그 외의 작업에는 가중치를 줘서 중간 중간에 한번씩 점프를 시켜야할 것 같네요..

이 프로세스 끝났으면 10%쯤 되겠다해서.. 10%로 점프를.. @_@;;

근데.. 순환문이 아닌데 시간이 오래 걸린다는 것은.. 뭔가 코딩에 문제가 있어보이네요.. @_@;;

그리고.. 대분분의 작업에는 작업진행바가 필요없습니다. 순식간에 끝나버려서요.. @_@;;

 

Application.OnTime 등을 이용해서 예측된 시간에서 동작시키는 것은 오히려 더 신뢰도가 떨어질 것 같습니다.

컴퓨터 사양에 따라 처리 속도는 천차만별이기때문이죠..

 

 

'### 이하 코드~~~


'### 여러 프로세스로 구성된 작업 진행바 만들기
'### Created by http://abyul.com/
'### initial date : 2013.02.04 am 00:28
Dim frm As ufrmProgressBar
Dim maxCount As Long
Dim fullWidth As Long
Dim lngProgress As Long

Sub abProgressBarShow()
    Set frm = New ufrmProgressBar
    frm.Label1.BackColor = 125
    frm.Label1.Caption = ""
    maxCount = 3000 + ActiveWorkbook.Styles.Count + 200 + 2000
    lngProgress = 0
    fullWidth = frm.TextBox1.Width
    frm.Show
End Sub

Sub abProgressBarMain()
    Call dummy1
    Call dummy2
    Call Macro1
    Call dummy3
    frm.Label1.Width = fullWidth
    frm.Label2.Caption = "작업 진행율 : " & Format(1, "0.0%")
    Set frm = Nothing
End Sub


Sub dummy1()
    Dim sht As Worksheet: Set sht = Sheets.Add
    Dim rng As Range: Set rng = sht.Range("A1")
    For i = 1 To 3000
        DoEvents
        rng.Offset(i).Value2 = i
        lngProgress = lngProgress + 1
        frm.Label1.Width = fullWidth * (lngProgress / maxCount)
        frm.Label2.Caption = "작업 진행율 : " & Format(lngProgress / maxCount, "0.0%")
        If i = 1000 Then
            Debug.Print i
        End If
    Next i
End Sub

Sub dummy2()
    Dim sht As Worksheet: Set sht = Sheets.Add
    Dim rng As Range: Set rng = sht.Range("A1")
    For i = 1 To sht.Parent.Styles.Count
        DoEvents
        rng.Offset(i).Value2 = sht.Parent.Styles(i).Name
        lngProgress = lngProgress + 1
        frm.Label1.Width = fullWidth * (lngProgress / maxCount)
        frm.Label2.Caption = "작업 진행율 : " & Format(lngProgress / maxCount, "0.0%")
    Next i
End Sub

Sub dummy3()
    Dim sht As Worksheet: Set sht = Sheets.Add
    Dim rng As Range: Set rng = sht.Range("A1")
    For i = 1 To 2000
        DoEvents
        rng.Offset(i).Value2 = i
        lngProgress = lngProgress + 1
        frm.Label1.Width = fullWidth * (lngProgress / maxCount)
        frm.Label2.Caption = "작업 진행율 : " & Format(lngProgress / maxCount, "0.0%")
    Next i
End Sub


Sub Macro1()
    Sheets.Add
    Range("B4:J33").Select
    Selection.FormulaR1C1 = "=RAND()*100"
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With

'### 코드 생략 ~~~


        lngProgress = lngProgress + 100
        frm.Label1.Width = fullWidth * (lngProgress / maxCount)
        frm.Label2.Caption = "작업 진행율 : " & Format(lngProgress / maxCount, "0.0%")
   

'### 코드 생략 ~~~

 

 

첨부

[레벨:5]맑은이슬

2013.02.04 10:36:09
*.247.145.54

감사 합니다,덕분에 많은 공부 하고 갑니다

profile

[레벨:30]아별

2013.02.04 12:09:07
*.104.126.21

도움이 되셨다니 다행입니다.

MaxCount를 설정하는게 관건이겠네요..

적절한 값으로 설정하는게 중요합니다.

즐거운 하루 되세요.. ^^

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 62159
482 엑셀일반 아별님 안녕하세요 질문드립니다. _ 선택하여 붙여넣기 더하기 옵션 작동 안하는 이유 file [3] [레벨:1]모래고래 2011-11-15 3621
481 엑셀일반 가입인사겸 질문올립니다. _ 파일오류,매크로바이러스,데이터손실 복구 방법 [3] [레벨:1]바람길 2011-11-16 3904
480 VBA 아별님 안녕하세요? 파이스입니다. _ 엑셀창과 VBE창 창전환 쉽게 하는 방법 [3] [레벨:6]파이스 2011-11-23 3788
479 VBA 2개의 시트를 비교하여 다른 부분을 찾아내는 프로시저 질문입니다! file [3] [레벨:6]파이스 2011-11-24 5125
478 VLookup 두개의 셀을 비교하여 같은값없애는 방법 file [3] [레벨:1]ak 2011-11-25 6132
477 VBA 갑자기 궁금해서 질문드리는건데요... _ VBA를 다른 오피스 프로그램에서 사용 가능한지..? [3] [레벨:6]파이스 2011-11-27 3529
476 엑셀일반 질문...^^ _ 선택 영역에서 빈셀만 모두 선택하여 특정 문자로 채우는 방법 [3] [레벨:4]나카타 2011-11-28 4244
475 배열수식 데이타 정열관련 질문 드립니다. _ offset과 배열 수식을 이용하여 최근 값을 순차적으로 갖고 오는 방법.. file [3] [레벨:1]바람길 2011-11-28 4269
474 엑셀일반 매번 불편한 부분이 있어서 질문드립니다. _ 여러 행 또는 열을 한번에 삽입하는 방법.. [4] [레벨:4]알랑알랑♥ 2011-11-29 6201
473 VBA 랜덤 출력 관련 짧고 간결(?)한 3가지 질문입니다. _ 중복 없는 랜덤 패스워드 생성하는 방법.. [4] [레벨:6]파이스 2011-11-29 7069
472 엑셀일반 혹시 이런것도 가능한가요? (간결한 2가지 질문) - VBA만 실행파일(.exe)로 만들 수 있는지 여부, 외부 파일명 일괄 변경 방법.. [2] [레벨:6]파이스 2011-12-02 4744
471 아별툴관련질문 sheet 통합하기 file [1] [레벨:2]광택입니다 2011-12-06 3093
470 아별툴관련질문 스타일 삭제 질문입니다. imagefile [1] [레벨:0]blueclip 2011-12-07 3797
469 엑셀수식 엑셀 작업 중, 질문사항! - 다중 조건의 합계 산출 방법(SUMIFS,SUMPRODUCT) [2] [레벨:4]나카타 2011-12-08 3373
468 엑셀일반 질문하나 더 드립니다! [1] [레벨:4]나카타 2011-12-09 3305
467 엑셀일반 2010 엑셀로 작업 2003엑셀 시트 복사가 안되요 [1] [레벨:2]리자딘 2011-12-09 4180
466 VBA 아별님 안녕하세요 질문이 하나 있습니다 ^^ file [3] [레벨:0]하이버리 2011-12-09 3015
465 엑셀일반 신입 주제에 질문 먼저라 죄송합니다 ㅠㅠ file [3] [레벨:1]에봉이 2011-12-09 3393
464 차트 피라미드 그래프 (그림 첨부) file [5] [레벨:3]읍내꽃미남 2011-12-16 4460
463 VBA 동적 데이터 교환 질문 [1] [레벨:3]바람 2011-12-27 3110