Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 상태바 STATUSBAR 정보 출력하기

엑셀(Excel)/VBA
반응형

엑셀 화면 하단에는 상태 정보를 표시하는 곳이 있습니다. 엑셀에서 이루어지는 작업 진행 사항을 보여 주는 곳으로 VBA 에서도 제어가 가능합니다. 상태 정보를 표시할 수 있는 속성은 Application.STATUSBAR 입니다. Application 개체에 포함되어 있습니다. 오늘은 VBA 에서 매크로 함수의 진행 여부를 상태바에 표시하는 방법에 대해 알아 보겠습니다.

 

 

그림에서처럼 엑셀 화면에서 Application.STATUSBAR 속성으로 표시할 수 있는 곳은 화살표로 가리키는 곳입니다.

엑셀 VBA 상태바 STATUSBAR 정보 출력하는 방법

 

 

상태바에 매크로 함수의 진행 상태를 표시하기 위해 2For 문으로 반복문을 만들었습니다.

 

For i = 1 To 20
    For j = 1 To 5
       
    Next j
Next i

 

 

다음은 랜덤 값을 추출해서 엑셀 시트에 표현하기 위해서 RANDBETWEEN 함수를 사용하였습니다. 20 100 사이의 값 중 하나를 반환 받게 됩니다.

 

Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 개발할 로그 출력하는 방법
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀 VBA 마지막 행과 열의 찾기
셀 VBA GoTo 이용해서 줄로 분기하기



 

 

 

이제 For 문이 끝날 때 까지 매번 상태바에 진행 사항을 표시해야 합니다. 현재 For 문에서 몇 % 진행이 되었는지 per 에 저장하고 데이터 입력 중이라는 문자열과 함께 Application.STATUSBAR 속성에 저장합니다. 그럼 문자열은 상태바에 출력이 됩니다.

 

per = (i - 1) * 5 + (j * 1)
Application.STATUSBAR = "데이터 입력중.. " & per & "% 완료"
Application.Wait Now + TimeValue("00:00:01")

 

 

For 문이 끝나고 상태바에 입력이 종료 되면 원래 상태로 돌리기 위해 STATUSBAR False 로 세팅해 줘야 합니다.

 

Application.STATUSBAR = False

 

 

아래는 상태바에 정보를 출력하는 방법을 구현한 전체 매크로 함수에 대한 내용입니다. 실행한 결과는 그림 하단에 표시가 되어 있습니다.

 

Sub StatusBarInfo()
   
    Dim per As Integer
    Dim i As Integer, j As Integer
   
    For i = 1 To 20
        For j = 1 To 5
            Cells(i, j).Value = WorksheetFunction.RandBetween(20, 100)
            per = (i - 1) * 5 + (j * 1)
            Application.STATUSBAR = "데이터 입력중.. " & per & "% 완료"
            Application.Wait Now + TimeValue("00:00:01")
        Next j
    Next i
   
    Application.STATUSBAR = False
   
End Sub

 

엑셀 VBA 상태바 STATUSBAR 정보 출력하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 개발할 로그 출력하는 방법
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기
엑셀 VBA 연산자 사용해서 String 문자열을 합치기
엑셀 VBA 마지막 행과 열의 찾기
셀 VBA GoTo 이용해서 줄로 분기하기
반응형
Posted by 녹두장군

댓글을 달아 주세요