/ Excel VBA의 진행 상태 표시기

Excel VBA의 진행 표시기

아래에서 우리는 Excel VBA 그것은 진행 표시기. 우리는 진행 지표를 가능한 한 간단하게 유지했지만 전문적으로 보입니다.

우리가 생성 할 Userform은 다음과 같습니다.

Excel VBA의 진행 표시기

이 사용자 정의 폼을 만들려면 다음 단계를 수행하십시오.

1. Visual Basic Editor를 엽니 다. 프로젝트 탐색기가 보이지 않으면보기, 프로젝트 탐색기를 클릭하십시오.

2. Insert, Userform을 클릭하십시오. 도구 상자가 자동으로 나타나지 않으면보기, 도구 상자를 클릭하십시오. 화면은 다음과 같이 설정해야합니다.

Excel VBA의 사용자 폼 화면 설정

이 사용자 정의는 세 가지 제어로만 구성됩니다. 프레임 컨트롤과 두 개의 레이블 컨트롤.

3. 프레임 컨트롤을 추가하십시오. 도구 상자에서 프레임을 클릭하면됩니다. 그런 다음 사용자 정의 폼에서 프레임 컨트롤을 드래그 할 수 있습니다. 이 프레임 컨트롤의 일부 속성을 변경해야합니다. 프레임 컨트롤을 마우스 오른쪽 버튼으로 클릭 한 다음 속성을 클릭합니다. 캡션 필드를 비우고 Height를 24로, Width를 204로 설정하십시오.

4. 첫 번째 레이블 컨트롤을 추가하고 프레임 컨트롤에 배치하십시오. 레이블 컨트롤을 마우스 오른쪽 단추로 클릭 한 다음 속성을 클릭하십시오. 이름을 Bar, BackColor를 Highlight로 변경하고, Caption 필드를 비우고, Height를 20, Width를 10으로 설정하십시오.

5. 두 번째 레이블 컨트롤을 추가하고 프레임 컨트롤 위에 놓습니다. 레이블 컨트롤을 마우스 오른쪽 단추로 클릭 한 다음 속성을 클릭하십시오. 이름을 텍스트로 변경하고 캡션을 "0 % Completed"로 변경하십시오.

6. 사용자 정의 폼의 캡션을 진행 표시기로 변경하십시오.

이 작업이 완료되면 이전에 표시된 Userform 그림과 일치해야합니다.

7. 워크 시트에 명령 단추를 놓고 다음 코드 행을 추가하여 사용자 정의 폼을 표시하십시오.

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

다른 사용자 양식을 수행 한 경우이 사이트의 예를 들어, Sub UserForm_Initialize를 만드는 시간임을 알고 있습니다. 이 하위는 사용자 정의 폼이로드 될 때마다 자동으로 실행됩니다. 따라서 사용자 정의 폼에 Show 메서드를 사용하면 코드가 자동으로 실행됩니다. Sub UserForm_Initialize 대신 Sub UserForm_Activate를 만듭니다. 이 하위 기능을 사용하면 Excel VBA가 매크로의 진행 상태를 보여주기 위해 Userform을 업데이트 할 수 있습니다.

8. Visual Basic Editor를 엽니 다.

9. 프로젝트 탐색기에서 UserForm1을 마우스 오른쪽 단추로 누른 다음 코드보기를 누릅니다.

10. 왼쪽 드롭 다운 목록에서 사용자 양식을 선택하십시오. 오른쪽 드롭 다운 목록에서 활성화를 선택하십시오.

11. 다음 코드 행을 추가하십시오.

Private Sub UserForm_Activate()

code

End Sub

설명: 이 하위 코드는 우리가 잠시 후에 만들 코드를 다른 하위 코드라고 부릅니다. 혼란스러워? Sub에 대한 자세한 내용은 Function 및 Sub 장을 참조하십시오. 바쁘다면 다음 단계를 수행하면 문제가되지 않습니다.

12. 하위 명명 된 코드를 모듈로 가져옵니다 (Visual Basic Editor에서 삽입, 모듈 클릭). 이것은 단지 예일뿐입니다. 자신의 매크로에이 진행 표시기를 사용하려는 경우 자신의 코드를 추가 할 수있는 곳입니다. 코드는 다음과 같습니다.

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 행에서 1에서 1000까지의 값을 표시하기 위해 이중 루프를 사용합니다. 이렇게하면 잠시 동안 Excel VBA가 사용 중이며 매크로의 진행 상태를 볼 수 있습니다. 변수 pctCompl (percentCompleted의 약어)은 매크로의 진행을 측정합니다. 마지막으로 progress라는 또 다른 sub를 호출하고 변수 pctCompl의 값을 전달하여 Userform을 업데이트합니다. 이렇게하면 매크로의 진행 상황을 볼 수 있습니다!

13. progress라는 또 다른 sub를 추가하십시오. 코드는 다음과 같습니다.

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

설명 : 첫 번째 코드 줄은 첫 번째 레이블 컨트롤의 캡션을 변경합니다. 두 번째 코드 줄은 두 번째 레이블 컨트롤의 너비를 변경합니다. DoEvents를 추가하여 Userform을 업데이트하십시오.

14. Visual Basic Editor를 끝내고 시트에서 명령 단추를 누릅니다.

결과:

진행률 표시기 결과

노트 : 이 매크로의 경우 변수 i를 사용하여 진행 상황을 측정했습니다. 예를 들어 11 행에서 10 %가 완료됩니다. 매크로에 따라 다를 수 있습니다. 변수 pctCompl의 값을 하위 진행으로 전달하여 사용자 양식을 업데이트하는 기술은 동일하게 유지됩니다.

또한 읽으십시오 :