VBA 반복구문 짜는데 고수님의 도움이 필요합니다..

VBA
작성자
구두산구두쇠
작성일
2022-09-19 13:44
조회
56
엑셀버전 : 엑셀2019

운영체제 : 윈도우10

질문 요약 : VBA 반복구문을 돌리고 싶습니다! ㅠㅠ
모든 SlicerItems에 차례대로 TRUE 값을 반환하고 싶어요.

대한민국 어느 회사의 인사팀에서 근무하고 있는 대리입니다.

다름이 아니라, 사내 역량평가 데이터를 대시보드로 출력하는 엑셀을 짰고,

슬라이서 이름에 있는 값의 종류만큼 리포트를 PDF로 출력하는 VBA도 겨우 구현했습니다.

(슬라이서에는 사내 역량평가에 참여한 사람의 이름들이 쭈욱 있고요.)

 

'슬라이서 클릭 → 시트 선택 → 원하는 파일명으로 PDF 출력'이라는 아주 간단한 로직인데,

문제는 VBA 코드가 엄청 길다는 것입니다... 바로 보여드리자면

Sub 역량평가_리포트출력1()
'
' 역량평가_리포트출력 매크로
' 슬라이서_슬라이서_이름에 있는 값의 종류만큼 리포트를 PDF로 출력한다
 
'시작
    Sheets("역량평가리포트_표지").Select
    With ActiveWorkbook.SlicerCaches("슬라이서_슬라이서_이름")
        .SlicerItems("구성원1").Selected = True
        .SlicerItems("구성원2").Selected = False
        .SlicerItems("구성원3").Selected = False
        .SlicerItems("구성원4").Selected = False
        .SlicerItems("구성원5").Selected = False
        .SlicerItems("구성원6").Selected = False
        .SlicerItems("구성원7").Selected = False
               (   중    략)
        .SlicerItems("구성원112").Selected = False
 
 
    End With
 ' 원하는 시트 선택하는 코드
    Sheets(Array("시트 1", "시트 2", "시트 3", "시트 4", "시트 5")).Select
    Sheets("시트 1").Activate
    ' 프린트하는 코드 _ PrToFileName 뒤에 파일명 적기
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        ActivePrinter:="Microsoft Print to PDF", PrToFileName:="22-3Q 역량평가 리포트_" & Worksheets("Backdata").Range("B3").Value & " 님" & ".pdf"

기본 코드는 위와 같이 짰고요.

문제는 평가 대상자가 구성원 1부터 구성원 112까지라...

.SlicerItems("구성원112").Selected의 값이 True가 될 때까지 112번 복붙해서 코드를 짜서 실행하고 있습니다..

 

 

구성원1부터 구성원 112까지 SlicerItems의 값이 차례대로 True 값이 될 수 있게끔 할 수 있는 방법이 없을까요?

오빠두엑셀 커뮤니티 고수님들의 도움이 절실히 필요하여 이렇게 구구절절 글을 올립니다..

도움 주시면 정말정말정말 감사하겠습니다 ㅠㅠ

스크랩
공유
전체 6

  • 2022-09-20 12:17

    @구두산구두쇠 님 뭐가 뭔지..눈이 핑핑도네요ㅠㅠ


    • 2022-09-29 10:56

      @LovelyK 님 부사수님과 함께 매달려서 결국 구현했습니다 ㅎㅎ

      나중에라도 '슬라이서 아이템을 차례대로 선택해나가는 반복 작업'에 대해서 매크로 구현이 필요하실 때 VBA 코드 공유드릴게요 ㅎㅎ


  • 2022-09-19 13:55

    @구두산구두쇠

    실행해보시고...알맞게 응용해보세요..
    
    Sub test()
    
        Dim Str As String
    
        For n = 1 To 10
            Str = ""
            For a = 1 To 10
                Str = Str + Chr(10) + "구성원" & a & "=" & (a = n)
            Next
            MsgBox Str
        Next
    
    
    End Sub
    

     


    • 2022-09-20 13:51

      @마법의손 님 마법의손님!

      친절하게 알려주셔서 감사합니다! 🙂

       

      구성원1~10에 붙은 번호로 For 구문을 짜주신 것 같은데 맞죠 ^^?

      다만, 저 구성원 1~10 번호는 예시이고, 실제 데이터는 실명으로 되어있습니다 ㅠㅠ (예: 홍길동, 강감찬, 이순신, 코코몽 등)

      제 설명이 부족해서 죄송합니다. 혹시 이름에 규칙성이 없는 이런 경우에 반복 구문 돌릴 수 있는 묘수가 없을까요...!!


      • 2022-09-20 13:59
        채택된 답변

        @구두산구두쇠 님 음..이름들을 배열에 넣어놓고 반복문 돌리면 되잖아요..


        • 2022-09-22 10:40

          @마법의손 님 오! 제가 방법은 모르지만 개념적으로는 이해가 되었습니다.

          이름으로 set?를 만들고 그 set 안에서 반복문 돌리면 된다는 뜻으로 이해했는데.. 맞는지요?ㅎㅎ

           

          vba로는 어떻게 set 만들고 추출하는지는 직접 찾아봐야할 것 같네요! 감사합니다 ㅎㅎ

          해보고 후기 올리겠습니다 ㅎㅎㅎ


전체 7,839
번호 카테고리 제목 작성자 작성일 추천 조회
알림
🎉 오피스 분야 30주 연속 1위! - 「 진짜쓰는 실무엑셀 」 전자책이 출간되었습니다! (4)
오빠두엑셀 | 2022.09.28 | 추천 5 | 조회 272
오빠두엑셀 2022.09.28 5 272
공지사항 함수/공식
[신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (3)
오빠두엑셀 | 2022.08.04 | 추천 5 | 조회 1708
오빠두엑셀 2022.08.04 5 1708
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (97)
오빠두엑셀 | 2021.10.28 | 추천 125 | 조회 7487
오빠두엑셀 2021.10.28 125 7487
42696 VBA
New VBA 리스트박스 목록 선택 시 자동 누적 입력하기 안됨 해결방법 엑셀파일
GMART | 20:55 | 추천 0 | 조회 13
GMART 20:55 - 13
42695 파워쿼리/피벗
New 파워쿼리 병합 후 정렬에 대해서 질문드립니다. 엑셀파일첨부파일
월마리아 | 20:52 | 추천 0 | 조회 9
월마리아 20:52 - 9
42689 VBA
New 셀의 이미지를 복사하는 매크로... 첨부파일
실런 | 17:23 | 추천 0 | 조회 20
실런 17:23 - 20
42686 문서서식
New 영상 자료파일
뿌삐뿌찌빵꾸똥 | 14:15 | 추천 0 | 조회 25
뿌삐뿌찌빵꾸똥 14:15 - 25
42684 문서서식
New 조건부 서식 색 적용 안됨 첨부파일 (3)
아드키 | 12:48 | 추천 0 | 조회 27
아드키 12:48 - 27
42678 VBA
New VBA코드 오류뜨는데 왜 일까요ㅠㅠ 첨부파일 (2)
엑셀공부중 | 01:18 | 추천 0 | 조회 28
엑셀공부중 01:18 - 28
42676 함수/공식
New 함수조언 구합니다. 엑셀파일
엑셀공부중 | 2022.09.30 | 추천 0 | 조회 29
엑셀공부중 2022.09.30 - 29
42672 기능/도구
New 조건부 서식이 적용되지 않습니다. 첨부파일
dollffin | 2022.09.30 | 추천 0 | 조회 30
dollffin 2022.09.30 - 30
42670 피벗테이블
New 관계형데이터베이스 파워피벗 엑셀파일 (2) 답변완료
겸둥이 | 2022.09.30 | 추천 0 | 조회 37
겸둥이 2022.09.30 - 37
42669 함수/공식
New 출퇴근 자료를 이용하여 근태 테이블 작성하기 (index, match, iferror 함수 사용) 엑셀파일 (1)
공학 | 2022.09.30 | 추천 0 | 조회 38
공학 2022.09.30 - 38
42667 VBA
New M365 2206 버전의 VBA 자동화 오류 관련하여 문의를 드리고자 합니다
lililililil | 2022.09.30 | 추천 0 | 조회 24
lililililil 2022.09.30 - 24
42665 함수/공식
New if 함수 논리 설정 시 범위 선택 첨부파일 (2)
구찌갱 | 2022.09.30 | 추천 0 | 조회 29
구찌갱 2022.09.30 - 29
42664 문서서식
New 엑셀 날짜관련 질문드립니다. 첨부파일 (1)
엑셀잘할래요 | 2022.09.30 | 추천 0 | 조회 30
엑셀잘할래요 2022.09.30 - 30
42661 함수/공식
New 함수 조언구합니다. 엑셀파일 (2) 답변완료
엑셀공부중 | 2022.09.30 | 추천 0 | 조회 38
엑셀공부중 2022.09.30 - 38
42660 기능/도구
New 27인치 4K모니터로 엑셀을 하면... (1)
9 Crimes | 2022.09.30 | 추천 0 | 조회 45
9 Crimes 2022.09.30 - 45
42656 함수/공식
New 떨어진 여러 셀간의 AVERAGEIF 함수 사용 (1) 답변완료
아홉열 | 2022.09.30 | 추천 0 | 조회 35
아홉열 2022.09.30 - 35
42655 피벗테이블
New 피벗테이블에서 날짜 값 중에 "월"이 표시되었으면 합니다. 첨부파일 (7) 답변완료
twou**** | 2022.09.30 | 추천 0 | 조회 42
twou**** 2022.09.30 - 42
42653 VBA
New 엑셀 함수가 적용된 셀 영역에 round를 하는 방법 엑셀파일 (9) 답변완료
우산쓰자 | 2022.09.30 | 추천 0 | 조회 31
우산쓰자 2022.09.30 - 31
42651 함수/공식
New 수식 사용 시 결과값 오류 문의 엑셀파일 (3) 답변완료
병알 | 2022.09.30 | 추천 0 | 조회 28
병알 2022.09.30 - 28
42650 피벗테이블
New 관계형데이터 -파워피벗 관련 질문드려요. 엑셀파일 (2) 답변완료
겸둥이 | 2022.09.30 | 추천 1 | 조회 31
겸둥이 2022.09.30 1 31
42648
New OFFSET함수 관련 문의 첨부파일 (9)
콕콕이 | 2022.09.30 | 추천 0 | 조회 41
콕콕이 2022.09.30 - 41
42643 기능/도구
New 셀 병합 관련 알림 끄는 법 첨부파일 (1)
이종현 | 2022.09.30 | 추천 0 | 조회 29
이종현 2022.09.30 - 29
42635 VBA
New 원드라이브에 공유된 엑셀간에 VBA를 사용해서 데이터를 가져올수 있을까요 ?
헬롱 | 2022.09.30 | 추천 0 | 조회 30
헬롱 2022.09.30 - 30
42632 파워쿼리/피벗
New 파워쿼리 내에서 vlookup함수와 같은 기능이 없을까요? 엑셀파일첨부파일 (3)
월마리아 | 2022.09.30 | 추천 0 | 조회 46
월마리아 2022.09.30 - 46
42621 기능/도구
New 셀 하나당 그래프 하나를 만드는 방법이 궁금합니다. 첨부파일 (2) 답변완료
XD | 2022.09.29 | 추천 0 | 조회 45
XD 2022.09.29 - 45
42619 함수/공식
New 행방향으로으로 정열된 동일항목의 비고를 열방향으로 정열하는 방법 엑셀파일첨부파일 (8)
마운틴 | 2022.09.29 | 추천 0 | 조회 45
마운틴 2022.09.29 - 45
42618 VBA
New 블로그 문서 발행량 크롤링 서식을 다른 파일에서 이용하려면? 첨부파일 (3) 답변완료
XD | 2022.09.29 | 추천 0 | 조회 27
XD 2022.09.29 - 27
42612 함수/공식
New 다중 조건으로 하나의 결과값을 도출하고 싶습니다. 엑셀파일첨부파일 (2) 답변완료
배워배움 | 2022.09.29 | 추천 0 | 조회 38
배워배움 2022.09.29 - 38
42610 피벗테이블
New 엑셀 문서 재정리및 재정렬(부탁드려요 ㅠㅠ) 엑셀파일 (1)
u2y1gz71vdif | 2022.09.29 | 추천 0 | 조회 40
u2y1gz71vdif 2022.09.29 - 40
42607 기능/도구
New 엑셀 프로그램 2개를 하나의 파일로 합치는 방법이 있을까요? 엑셀파일 (2) 답변완료
노무인턴 | 2022.09.29 | 추천 0 | 조회 46
노무인턴 2022.09.29 - 46