VBA 문제 관련 (VBA를 사용하여 사진 옮기기)

VBA
작성자
철모대장
작성일
2021-05-12 22:55
조회
84

현재 유기견 관리 파일을 만들고 있습니다.

종합 파일에 있는 유기견 중 개체관리카드 출력이 필요한 강아지의 열을 선택한 후 "개체관리카드" 매크로를 실행시키면 자동으로 개채관리크를 작성하여 PDF 생성이 되도록 VBA를 작성해보았습니다.

그러나 강아지의 사진만 옮겨지지 않는데 VBA를 어떻게 수정해야 할까요?

그리고 PDF 생성 후 "개체관리카드" 시트의 N19 셀의 강아지 사진은 삭제되었으면 합니다. (매크로를 실행할 때마다 사진이 쌓이지 않도록..)

여려모로 고민해보았는데 VBA 고수님의 답변을 기다립니다.

전체 7

  • 2021-05-12 23:43

    Set C = Intersect(Columns("A"), Selection)

    ...

    For Each C In Intersect(Columns("A"), Selection)
    With Sheets("개체관리카드")
    .[N2].Resize(, 1) = Array(C.Offset(, 1)) '관리번호

    ...

    아래 부분에 강아지 사진은 Shape 개체인데, 여기에 셀 값을 넣어 놓았기  때문에 강아지 사진이 출력이 안 된 것입니다.
    .[N19].Resize(, 1) = Array(C.Offset(, 0)) '사진

    '''End With
    Next

    PDF로 출력 하는 부분은 루프가 다 돈 다음에 출력을 해야 할 듯 합니다.
    Sheets("개체관리카드").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & Sheets("개체관리카드").Range("N2").Value & "_개체 관리 카드.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True


    • 2021-05-13 10:39

      어떻게 수정해야 사진이 출력되도록 할 수 있을지요?


      • 2021-05-13 11:30

        강아지 카드에는 정작 사진이 들어가지 않고, 강아지 정보는 옆에 참조 테이블에 들어 가도록 해 놓은 것으로 보입니다. 그런데 출력은 강아지 카드만 하게 한 상태이고. 그리고 강아지 카드 부분의 정보들은 그림을 이용해서 받아 들이는 방법으로 되어 있는데, 무슨 특별한 이유가 있는지요? 그리고 강아지 정보를 옮기는 부분을 왜 Array()를 이용해서 옮기는지도 이해가 안갑니다. 배열을 쓰면 루프로 한번에 돌리려는 것이 목적인데 배열을 담는 루프도 없고, 단지 변수용도로만 쓰는 것이로만 보이는데요. 제가 뭔가 잘못 이해하고 있는 것인가요?


        • 2021-05-13 12:29

          관리 카드를 클릭하다 보니, 강아지 사진을 넣을 개체(그림 21)를 넣어 두셨더군요.

          시트만 보았을 때 보이지 않으니, 판독이 힘들었습니다.


  • 2021-05-13 12:16
    1. 먼저 강아지 사진들의 이름이 있어야 하기에 관리 번호와 같게 이름을 바꾸주는 루틴을 추가 했습니다.
    Sub 강아지사진에이름붙이기()
    
       Dim shp As Shape
       Dim RowCheck As Long
       
       For Each shp In Worksheets("종합").Shapes
          RowCheck = shp.TopLeftCell.Row
          Debug.Print shp.Name & vbTab & shp.TopLeftCell.Address(0, 0)
          If RowCheck > 2 Then
             shp.Name = Worksheets("종합").Cells(RowCheck, "B").Value
          End If
       Next
    
    End Sub

    그런 다음 종합시트에 있는 강아지 사진을 관리카드 시트로 그 이름을 활용하여 붙여 넣기를 하고, PDF 파일로 출력을 한 후에

    그 강아지 사진을 지웁니다.

    For Each C In Intersect(Columns("A"), Selection)
        With Sheets("개체관리카드")
            .[N2].Resize(, 1) = Array(C.Offset(, 1)) '관리번호
            .[N3].Resize(, 1) = Array(C.Offset(, 3)) '구조일시
            .[N4].Resize(, 1) = Array(C.Offset(, 7)) '구조장소
            .[N5].Resize(, 1) = Array(C.Offset(, 8)) '구조자
            .[N6].Resize(, 1) = Array(C.Offset(, 9)) '축종
            .[N7].Resize(, 1) = Array(C.Offset(, 10)) '품종
            .[N8].Resize(, 1) = Array(C.Offset(, 11)) '년령
            .[N10].Resize(, 1) = Array(C.Offset(, 12)) '성별
            .[N11].Resize(, 1) = Array(C.Offset(, 13)) '체중
            .[N12].Resize(, 1) = Array(C.Offset(, 14)) '모색
            .[N13].Resize(, 1) = Array(C.Offset(, 15)) '친화도
            .[N14].Resize(, 1) = Array(C.Offset(, 16)) '활발함
            .[N15].Resize(, 1) = Array(C.Offset(, 17)) '특징
            '.[N19].Resize(, 1) = Array(C.Offset(, 0)) '사진 --> 이 부분을 주석 처리했습니다.
            
            Worksheets("종합").Shapes(.[N2].Resize(, 1).Value).Copy
            .Paste
            
            .Shapes(.[N2].Resize(, 1).Value).left = .Shapes("그림 21").left
            .Shapes(.[N2].Resize(, 1).Value).Top = .Shapes("그림 21").Top
            .Shapes(.[N2].Resize(, 1).Value).height = .Shapes("그림 21").height
            .Shapes(.[N2].Resize(, 1).Value).Width = .Shapes("그림 21").Width
            
            
            .[N19].Resize(, 1) = Worksheets("종합").Shapes(.[N2].Resize(, 1).Value).Copy
            
                Range("L1").Select
                ActiveCell.FormulaR1C1 = ""
                Range("L2").Select
            End With
    Next
    Sheets("개체관리카드").ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\" & Sheets("개체관리카드").Range("N2").Value & "_개체 관리 카드.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    
    '붙여넣은 강아지 사진 삭제 - "그림 21" 원래 빈 원본 개체는 남겨 둠
    Worksheets("종합").Shapes(.[N2].Resize(, 1).Value).Delete

    PDF 파일로 인쇄하기가 루프문 밖에 있는 관계로 한번에 한개씩만 파일을 만들 있을 수 있습니다.

    변환 사진

    PDF출력문을 루프 안쪽으로 옮겨 놓으면(원래 코딩하신 위치)에 두시면 아마도 일괄 파일 변환이 되지 않을 까 합니다.

    다만, 출력하고 강아지 사진을 지우려면 이 코드를 PDF출력문 뒤에 붙이 셔야 합니다.

    Worksheets("종합").Shapes(.[N2].Resize(, 1).Value).Delete


전체 3,239
번호 카테고리 제목 작성자 작성일 추천 조회
3226 차트/그래프
New 차트 일자 서식 / 로그 차트 관련 질문 첨부파일
cyd**** | 11:57 | 추천 0 | 조회 19
cyd**** 11:57 0 19
3225 VBA
New 네이버 API 이용 검색관련 질문좀요. (2)
녹색태양 | 02:30 | 추천 0 | 조회 29
녹색태양 02:30 0 29
3224 함수/공식
New 이름 중복자도 추출하는 방법... 첨부파일 (2) 답변완료
승재빠 | 2021.06.17 | 추천 0 | 조회 43
승재빠 2021.06.17 0 43
3223 함수/공식
New 다중조건 목록상자(드롭다운)에서 열참조가 아닌 행참조로 하는 방법이 있을까요?
치즈쿠키 | 2021.06.17 | 추천 0 | 조회 24
치즈쿠키 2021.06.17 0 24
3222 VBA
New INDEX,MATCH 함수로 불러온 값에 배경색까지 따라오게 하는 방법 문의 드립니다. 첨부파일 (4)
새하늘 | 2021.06.17 | 추천 1 | 조회 58
새하늘 2021.06.17 1 58
3221 함수/공식
New 같은 품번별로 누적합계 구하기 (품번이 바뀔 경우 해당 행에서부터 다시 누적합계) 첨부파일 (2)
ploki | 2021.06.17 | 추천 0 | 조회 36
ploki 2021.06.17 0 36
3220 파워쿼리/피벗
New 파워피벗(DAX)에서 countif (중복 개수) 값을 얻고싶어요
ㅎㅎ | 2021.06.17 | 추천 0 | 조회 31
ㅎㅎ 2021.06.17 0 31
3219 파워쿼리/피벗
New 관계형 데이터베이스 구축관련 문의입니다 (1)
뀨1 | 2021.06.17 | 추천 1 | 조회 36
뀨1 2021.06.17 1 36
3218 VBA
New 도움을 요청합니다. 첨부파일 (5)
백설공주 | 2021.06.16 | 추천 0 | 조회 64
백설공주 2021.06.16 0 64
3217 기능/도구
New 확장형(?) 드롭다운 첨부파일 (3) 답변완료
치즈쿠키 | 2021.06.16 | 추천 0 | 조회 46
치즈쿠키 2021.06.16 0 46
3216 VBA
New vba 차트 그래프의 마지막 포인트의 위치값? 확인 방법 (3) 답변완료
aaaadcba | 2021.06.16 | 추천 0 | 조회 28
aaaadcba 2021.06.16 0 28
3215 VBA
New 피벗 갱신관련 VBA 구문 (2) 답변완료
H.B | 2021.06.16 | 추천 0 | 조회 36
H.B 2021.06.16 0 36
3214 함수/공식
New 특정 셀 값이 갖고 있는 목록 중 원하는 값을 순차적으로 가져오기 (3)
만수르용 | 2021.06.16 | 추천 0 | 조회 43
만수르용 2021.06.16 0 43
3213 VBA
New 함수(수식)의 값들을 값으로 변환 첨부파일
소금인형 | 2021.06.16 | 추천 0 | 조회 32
소금인형 2021.06.16 0 32
3212 VBA
New 배송 정보를 입력할때 데이터를 효율적으로 관리하고 싶은데요. 첨부파일 (4)
silverf**** | 2021.06.16 | 추천 0 | 조회 41
silverf**** 2021.06.16 0 41
3211 VBA
New 공유폴더에 엑셀 파일을 DB 용으로 사용할 경우 불러들이고 수정, 삭제하는데 로딩시간이 원래 오래걸리나요? (2) 답변완료
log | 2021.06.16 | 추천 0 | 조회 25
log 2021.06.16 0 25
3210 함수/공식
New 복식부기 중 iferror 관련 질문입니다. 첨부파일 (2) 답변완료
Yoon | 2021.06.16 | 추천 0 | 조회 27
Yoon 2021.06.16 0 27
3209 VBA
New 두번째 질문 올립니다. 범위안에서 선택이되었는지 첨부파일
게임쇼핑 | 2021.06.16 | 추천 0 | 조회 20
게임쇼핑 2021.06.16 0 20
3208 함수/공식
New 클릭하면 원하는 셀로 이동하는 함수 or 매크로 (3)
LJH | 2021.06.16 | 추천 0 | 조회 51
LJH 2021.06.16 0 51
3207 문서서식
New 엑셀 실기시험 관련해서 사소한 질문 하나 드립니다. (4) 답변완료
행복지기 | 2021.06.16 | 추천 0 | 조회 41
행복지기 2021.06.16 0 41
3206 피벗테이블
New 다시 질문드립니다! 피벗테이블 부분합 2개 만들기!
모찌율 | 2021.06.16 | 추천 0 | 조회 27
모찌율 2021.06.16 0 27
3205 VBA
New 엑셀로 Word 파일 생성 (1)
fire6**** | 2021.06.16 | 추천 0 | 조회 32
fire6**** 2021.06.16 0 32
3204 함수/공식
동일 그룹 내 중복값 입력 못하게 할 수 있을까요? 첨부파일 (4)
지옥나비 | 2021.06.15 | 추천 1 | 조회 62
지옥나비 2021.06.15 1 62
3203 VBA
VBA 에서 for 반복문 사용 관련 질문! (2)
팡이 | 2021.06.15 | 추천 0 | 조회 32
팡이 2021.06.15 0 32
3202 VBA
VBA Access 첨부파일 다운로드 (1)
조형진 | 2021.06.15 | 추천 0 | 조회 36
조형진 2021.06.15 0 36
3201 함수/공식
엑셀 중복을 제거하고 조건에 맞는 데이터 갯수 세기 (1)
칭구 | 2021.06.15 | 추천 0 | 조회 49
칭구 2021.06.15 0 49
3200 VBA
VBA 피벗갱신 구문
H.B | 2021.06.15 | 추천 0 | 조회 24
H.B 2021.06.15 0 24
3199 VBA
매크로 이용하여 사진 삽입 후 저장된 파일을 이동하면 사진이 깨집니다. 도와주세요 첨부파일 (2)
큰공쥬 작은공쥬~ ♥ | 2021.06.15 | 추천 0 | 조회 38
큰공쥬 작은공쥬~ ♥ 2021.06.15 0 38
3198 문서서식
셀병합이안되네요 첨부파일 (5) 답변완료
현정이 | 2021.06.15 | 추천 0 | 조회 42
현정이 2021.06.15 0 42
3197 VBA
엑셀 파일 raw 한개를 여러 파일로 나누어 자동 저장하는 방법? (1)
아라아라다 | 2021.06.15 | 추천 0 | 조회 39
아라아라다 2021.06.15 0 39