오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
미해결

반복문 아닌 구문에 progress bar 적용하는 방법에 대하여 문의드립니다.

조프로
1월 24일 조회 13,511
강사님 안녕하세요

즐거운 설 연휴 보내시구요. 새해 복많이 받으세요

 

for문 등 반복문 환경에서는 인수증가를 이용하여 progress bar를 구현하고 있는데요

 

아래와 같은 경우는 실행시간 자체가 걸리는 거여서 위 방법으로는 진행바를 구현이 안되는데요

"잠시만 기다려주십시요, ~~% 진행중입니다" 이런식으로 진행바를 할려고 합니다.

 

[예문]

Sub FileLoad_Without_Open()

Dim StrPath As String
Dim StrFileName As String
Dim StrFomula As String
Dim r As Integer
Dim i As Integer

StrFullName = Application.GetOpenFilename(filefilter:="Excel(*.xls*),*.xls*")

If StrFullName = "False" Then Exit Sub

StrPath = Left(StrFullName, InStrRev(StrFullName, "\"))
StrFileName = Mid(StrFullName, InStrRev(StrFullName, "\") + 1)
StrFomula = StrPath & "[" & StrFileName & "]"

On Error Resume Next

Set getFile = GetObject(StrPath & StrFileName)

If Err <> 0 Then
MsgBox ("파일 오류 입니다. 제한보기 해제 하세요")
Err.Clear
Exit Sub
End If
getFile.Worksheets(1).Copy after:=ActiveWorkbook.Sheets(Worksheets.count)
ActiveSheet.Name = "SRC"
getFile.Close False

Set getFile = Nothing


End Sub

 

위 예문은 파일을 불러들이는 코드인데요, 여기서는 반복문 사용이 없고 용량이 큰 파일은

자체로 읽어들이는 시간이 있습니다. 이 과정에서 응답없음 상태가 되기도 하지만 결국에는

시간이 걸리지만 잘 읽어들입니다.

 

그런데 이 과정에서 몇프로 진행중인지를 표시해줄려고 진행바를 할려고 하는데, 반복문이 없는

이러한 상황에서는 어떤방식으로 진행바를 만드는지 궁금합니다.

 

강사님 늘 감사합니다.^^

댓글 2

오빠두엑셀 1월 27일
안녕하세요~^^
제가 이해하기로는, 적어주신 명령문으로 파일 실행 후 첫번쨰 시트를 복사/붙여넣기 하는 작업을 할 때, 파일 용량이 클경우 시간이 오래걸리니
...파일실행중...
...파일실행완료..복사중..
...복사완료..프로그램종료중..
등의 순서로 진행바를 표시해주고 싶단 말씀으로 이해했습니다. 맞나요?
아쉽게도 VBA로는 구현이 어렵습니다. 말씀하신 내용은 더 하위단계인 C언어로 내려가야 구현이 가능할거에요 ^^;
만약 파일이 여러개가 실행되고, 파일이 1개, 2개, 3개.. 완료될때마다 진행바를 증가하는 형식이라면 말씀해주신것처럼, for 반복문으로 progress bar 를 표현할 수 있습니다.
제 답변이 도움이 되셨으면 좋겠습니다. 감사합니다.
조프로 작성자 1월 28일
네. 강사님 이해하신 부분이 맞습니다. 답변 감사합니다.^^

질문답변 게시판의 최근 글

스크랩 완료