inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복

8-7. 파일로 분리된 데이터 한 시트에 취합하는 프로그램 소스 사용하기

선택파일 배열은 1부터 시작하나요?

378

개미아빠

작성한 질문수 1

2

1. dim에서 선택파일을 variant로 선언하셨는데, 자료 형식이 2가지여서라고 되어 있네요. 구글 검색으로 찾아봤는데, 뒤에 나오는 getopenfilename메서드로 인한 창에서 '취소'-논리값과 파일(텍스트)라는 2가지 형식으로 이해해도 되나요?

2. 선택파일을 getopenfilename메서드에서 텍스트 형식으로 변수를 받으셨는데, 선택된 각 파일의 배열이 선택파일(1), 선택파일(2), ... 로 이해해도 되나요? 어떤 곳에는 보니까 배열의 시작은 0이 아닌가 하는 생각도 들었어요. 선택파일(0), 선택파일(1), ... 

excel 업무 생산성 VBA

답변 1

1

엑셀여신

네~ 안녕하세요? 개미아빠님!

1번 질문

맞습니다. 선택파일 변수를 가변형으로 선언한 것은 GetOpenFilename 메서드에 의해 [열기] 대화상자가 나타나면 취합할 파일을 선택하게 되는데, [열기] 대화상자에서 파일을 두 개 이상 선택하면 파일명이 배열로 변수에 대입되고, [취소]를 누르면 Flase가 대입되므로 변수의 자료 형식을 설정할 수 없어서 Variant(가변형)으로 선언합니다.

------------------------------------------------------------------

2번질문

VBA에서 배열의 시작번호는 0번이 맞습니다.

그런데, GetOpenFilename 메서드에 의해 저장되는 선택파일 변수에 저장되는 값이 1번째 파일은 선택파일(1)에, 2번째 파일은 선택파일(2)에 저장되어 For Next 반복문의 초기값을 1로 지정했습니다. 

다른 방식으로는 

For i = LBound(선택파일) To UBound(선택파일)

로 사용하셔도 됩니다. 선택파일 변수에 저장된 가장 작은 값을 시작값으로 지정하고, 가장 큰 값을 최종값으로 설정하는 방법입니다.

LBound함수는 가장 작은 인덱스 값을 반환하고 UBound 함수는 가장 큰 인덱스 값을 반환하는 합니다.

강의자료 다운로드 문제

0

223

1

강의자료 깨짐

0

250

3

개체컬렉션 질문입니다!

0

522

2

VBA 질문

0

519

1

VBA 관련 질문드립니다.

0

256

1

실습파일 - Active X / 읽기 전용으로 열기 해제 방법

0

475

1

파일취합 변수

0

253

1

분명 강의와 똑같이 적었는데 오류가 뜨네요 무슨 문제일까요..?

0

288

1

매크로동작오류

0

358

2

매크로 원상복귀

0

586

1

실습파일 받는 방법 문의

0

348

1

VBA Solver 초기값에서 최적해 관련 파라미터 업데이트 안됨

0

475

1

개체메서드

0

284

2

thisworkbook.path

0

592

1

서식자동화 메크로 만들때

0

397

2

수업자료 이름이 깨지는 것과 매크로 실행 안됨

0

580

2

사업부 행번호 자동입력

0

408

1

강의파일 실행문제

0

275

1

Rows와 EntireRow

0

382

1

셀에 있는 문자를 소리(스피커)로 듣기?

0

666

2

반복문의 변수

1

260

1

실행이 되지 않는데 어떤부분이 잘못되었는지 알려주시면 감사드리겠습니다!

0

189

1

파일시트 취합하기 문의

0

429

2

2강 (행 숨기기) 매크로

0

310

1