다음은 우리가 진행 표시기를 생성 엑셀 VBA에서 프로그램을 볼 것이다. 우리는 가능한 한 간단하게 진행 표시기를 유지했습니다 아직 전문 보인다. 준비 되었나요? 사용자 정의 폼 우리는 다음과 같은 모양을 만들려고하고있다 :

Progress Indicator in Excel VBA

이 정의 폼을 만들려면 다음 단계를 실행합니다.

  1. Visual Basic 편집기. 프로젝트 탐색기가 보이지 않으면보기 프로젝트 탐색기를 클릭합니다.

삽입, 사용자 정의 폼을 클릭합니다. 도구 상자가 자동으로 나타나지 않으면,보기, 도구 상자를 클릭합니다. 화면은 다음과 같이 설정해야합니다.

Userform Screen Setup in Excel VBA

이 정의 폼은 세 개의 컨트롤로 구성되어 있습니다. 프레임 컨트롤 두 레이블 컨트롤.

프레임 컨트롤을 추가합니다. 도구 상자에서 프레임을 클릭하여이 작업을 수행 할 수 있습니다. 다음으로, 당신은 사용자 정의 폼 프레임 컨트롤을 드래그 할 수 있습니다. 이 프레임 제어의 일부 속성을 변경해야합니다. 마우스 오른쪽 버튼 프레임 컨트롤을 클릭 한 다음 속성을 클릭하십시오. 캡션 필드를 비우기, 204 폭 24와 높이를 설정

첫 번째 레이블 컨트롤을 추가하고 Frame 컨트롤에 배치하십시오. 마우스 오른쪽 버튼 레이블 컨트롤을 클릭 한 다음 속성을 클릭하십시오. , 하이라이트로 바,에 BackColor로 이름을 변경 캡션 필드를 비워, (10)에 폭 20와 높이를 설정

두 번째 레이블 컨트롤을 추가하고 프레임 컨트롤 위에 배치 (5).

마우스 오른쪽 버튼 레이블 컨트롤을 클릭 한 다음 속성을 클릭하십시오.

텍스트로 이름을 변경하고 ‘완료 0 %’에 캡션을 변경합니다.

  1. 변경 진행률 표시기에 대한 사용자 정의 폼의 캡션.

이것이 완료되면, 그 결과는 앞서 도시 정의 폼의 화상과 일치한다.

  1. 워크 시트에 명령 버튼은 사용자 정의 폼을 표시하려면 다음 코드 줄을 추가 :

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

이 사이트의 다른 사용자 정의 폼 예제를 통과 한 경우이이 하위 UserForm_Initialize을 만들 수있는 시간입니다 것을 알고있다. 이 하위 사용자 정의 폼이로드 될 때마다 자동으로 실행됩니다. 사용자 정의 폼에 대한 표시 방법을 사용하는 경우 따라서, 코드가 자동으로 실행됩니다. 대신 하위 UserForm_Initialize, 우리는 하위 UserForm_Activate을 만들 수 있습니다. 이 하위를 사용하여, 엑셀 VBA 매크로의 진행 상황을 표시하는 사용자 정의 폼을 업데이트 할 수 있습니다.

  1. Visual Basic 편집기.

프로젝트 탐색기 9. 오른쪽 UserForm1을 클릭 한 다음 코드보기를 클릭하십시오.

  1. 왼쪽 드롭 다운 목록에서 사용자 정의 폼을 선택합니다. 오른쪽 드롭 다운 목록에서 활성화를 선택합니다.

  2. 다음 코드 줄을 추가

Private Sub UserForm_Activate()

code

End Sub

설명 :이 서브 우리가 분에 만들려고하고 또 다른 하위라는 이름의 코드를 호출합니다. 혼란? 당신은 잠수함에 대한 자세한 내용은 Google 기능 및 하위 장을 갈 수 있습니다. 급한 경우 바로 다음 단계를 실행하면 잘 될 것입니다.

12.이 모듈에 코드를라는 하위 (Visual Basic 편집기에서, 삽입 모듈을 클릭하십시오). 이것은 단지 예입니다. 이것은 당신이 당신의 자신의 매크로이 진행 표시기를 사용하고자 할 때 자신의 코드를 추가 할 수있는 장소입니다. 코드는 다음과 같습니다.

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100

For j = 1 To 1000

Cells(i, 1).Value = j

Next j

pctCompl = i

progress pctCompl

Next i

End Sub

설명 : 첫째, 우리는 몇 가지 변수를 초기화합니다. 다음으로, 우리는 Sheet1의 선택을 취소합니다.

우리는 워크 시트의 처음 100 행에 1000 1의 값을 보여주기 위해 이중 루프를 사용합니다. 이것은 잠시 동안 바쁜 엑셀 VBA를 유지하고 우리에게 매크로의 진행 상황을 볼 수있는 기회를 제공합니다. 변수 pctCompl (percentageCompleted의 약자)는 매크로의 진행 상황을 측정합니다. 마지막으로, 우리는 또 다른 하위라는 이름의 진행 상황을 호출하고 사용자 정의 폼을 업데이트 할 변수 pctCompl의 값을 전달합니다. 이 방법으로 우리는 매크로의 진행 상황을 볼 수 있습니다! 13. 다른 하위라는 이름의 진행 상황을 추가합니다. 코드의 모습을 다음과 같이

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"

UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

설명 : 첫 번째 코드 행은 첫 번째 레이블 컨트롤의 캡션을 변경합니다. 번째 코드 라인은 제 라벨 제어의 폭을 변경한다. 사용자 정의 폼을 업데이트 할 DoEvents를 추가합니다.

  1. 종료 Visual Basic 편집기 시트에 명령 버튼을 클릭

결과 :

Progress Indicator Result

참고 :이 매크로, 우리는 내가 진행 상황을 측정하는 변수를 사용했다.

예를 들어, 로우 (11), 10 %가 완성된다. 이 매크로 다를 수 있습니다. 정의 폼을 업데이트 서브 진행에 pctCompl 변수 값을 전달하는 방법은 동일하다.