1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

파이스님의 질문해주셔서 만든 강좌입니다.

셀 안에 삽입된 이미지의 정가운데(가로+세로)정렬 방법이 궁금합니다.

 

셀안에 도형이나 이미지를 어떻게 정렬할것인가를 알려주는 강좌입니다.

 

도움이 되셨기를..

 

아래 이미지는 첨부된 엑셀 파일을 이미지로 만든 것입니다.

엑셀파일을 다운 받아 실습해보세요..

다운 받기 : abyul.com_arrangeImages_20111011-1.xlsx

 

 

** 여러 개의 이미지를 한번에 정렬하고 싶으시면 저 아래쪽에 VBA를 활용하는 방법을 참고하세요..

 

abyul.com_arrangeImages_20111011-1.jpg

 

 

 

 

 

[ 강좌 추가 ]

추가 질문에 대한 답변입니다.

 

▲추가 질문..

안녕하세요. 아별님 파이스입니다.

알려주신대로 하니 정말 신기하게 잘 되었습니다.

혹시 A열에 예시처럼 3개의 셀이 아닌 300개의 셀에 일일히 정렬되지 않고 크기도 서로 다른, 이미지가 이미 들어가 있고

이것을 일괄적으로 맞추고자 한다면,

알려주신 것처럼 (1) (셀 크기에 맞춘 하나의 도형과 그 안의 이미지를 같이 잡아서 가운데 맞춤 중간맞춤)

위의 (1)의 과정을 300회 반복하는 것보다 좀 더 효율적인 방법이 있을까요?

좋은하루 보내세요 ~^^

 

▲추가 답변..

파이스님.. 엑셀의 기본 기능으로 해결하려면,

설명드린데로 하실 수 밖에 없을 것 같습니다.

 

하지만.. 엑셀에는 VBA가 있지요..

 

첨부파일을 다운 받아 테스트해보세요..

다운받기 : abyul.com_arrangeImages_VBA_20111012-3.xlsm

 

해당 코드는 아래와 같습니다.

Sub arrangeImageToCenter()
    '### Created by Joowon Oh @ abyul.com
    '### 2011.10.12
    Dim s As Shape, r As Range
    Dim ws As Worksheet: Set ws = ActiveSheet
    Dim strTargetRange As String
    '### R1C1참조 스타일에서 C1은 1번째 컬럼 즉 A열을 의미함.
    strTargetRange = "C1"

    For Each s In ws.Shapes
        Set r = s.TopLeftCell
        If Right(r.Address(ReferenceStyle:=xlR1C1), 2) = strTargetRange Then                      
            s.Left = r.Left + (r.Width - s.Width) / 2
            s.Top = r.Top + (r.Height - s.Height) / 2
        End If
    Next s

End Sub

 

  

 

 

 

 

 

 


댓글 '4'

[레벨:4]현대자동차

2012.03.19 16:56:36
*.29.96.161

잘 보고 갑니다 ~~

[레벨:4]알랑알랑♥

2012.09.12 10:23:00
*.161.30.117

오...역시 명불허전 !!

사랑

2013.03.14 22:39:37
*.230.140.151

질문있습니다~! 올려주신 메크로는 a열만 정렬이 가능한데요. 그걸 b열이나 c열 혹은 1행이나 2행으로 바꿀려면 어떻게 해야되나요?

profile

[레벨:30]아별

2013.03.15 01:06:04
*.130.73.75

사랑님..

반갑습니다. 이왕이면 가입하셔서 질문하시면 좋을텐데.. ㅎㅎ


암튼.. 나그네에게도 친절한 아별이므로 답변 드립니다. ^^


지금보니 원본 코드가 좀 간결하지 못하네요.. @_@;;


간결하게 고쳐보면 아래와 같습니다.

 Sub arrangeImageToCenter()

    '### Created by Joowon Oh @ abyul.com

    '### created 2011.10.12, updated 2013.03.15

    Dim s As Shape, r As Range

    Dim ws As Worksheet: Set ws = ActiveSheet

    For Each s In ws.Shapes

        Set r = s.TopLeftCell

        If r.Column = 1 Then

            s.Left = r.Left + (r.Width - s.Width) / 2

            s.Top = r.Top + (r.Height - s.Height) / 2                

        End If

    Next s

End Sub


위 코드에서 "r.Column = 1" 부분의 숫자 1은 

A열을 의미하는 것이므로.. 2나 3으로 바꾸면 2번째열 3번째 열 정렬도 가능합니다.


특정 열에 상관없이 전부 정렬하려면 아래처럼 하시면 되겠죠..

IF조건을 빼버리면 됩니다.


 Sub arrangeImageToCenter()

    '### Created by Joowon Oh @ abyul.com

    '### created 2011.10.12, updated 2013.03.15

    Dim s As Shape, r As Range

    Dim ws As Worksheet: Set ws = ActiveSheet

    For Each s In ws.Shapes

        Set r = s.TopLeftCell

            s.Left = r.Left + (r.Width - s.Width) / 2

            s.Top = r.Top + (r.Height - s.Height) / 2                

    Next s

End Sub


도움이 되셨기를.. ^^

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
14 엑셀일반 [강의 준비 아이디어 ] 상대 참조와 절대 참조 설명용.. [레벨:30]아별 2014-09-03 2684
13 엑셀일반 함수에 포함된 "--" 기호 의미 [1] 파야 2014-11-24 2730
12 기타 [교육안내] 교육비 환급(80%~100%) 업무에 바로 쓰는 엑셀 2007 활용실무 imagefile [레벨:30]아별 2013-12-05 2752
11 VBA [강의 준비 아이디어 ] 매크로가 필요할 때.. file [1] [레벨:30]아별 2014-06-23 3463
10 VBA [강좌] VBA로 *.ini 파일 다루기.. imagefile [레벨:30]아별 2013-09-12 4882
9 [강좌] 매크로 함수를 활용하여 수식셀 자동 색상 지정하기 imagefile [6] [레벨:30]아별 2011-07-19 6485
8 [강좌] 차트 데이터 레이블을 내 맘대로 다른 것으로 바꾸고 싶을때... imagefile [4] [레벨:30]아별 2011-07-14 6771
7 엑셀에서 자간이 벌어진것 같은 문자를 정상으로 만드는 ASC 함수 file [레벨:30]아별 2009-10-29 7047
6 VBA 유저폼에 이미지 쉽게 집어 넣기.. imagefile [레벨:30]아별 2012-09-06 7193
5 [강좌] 차트에 보조선 넣기 imagefile [17] [레벨:30]아별 2011-08-09 7590
4 DATEDIF 함수 file [5] [레벨:30]아별 2009-07-17 9681
3 NETWORKDAYS() : 근무일수를 구하는 함수 imagefile [7] [레벨:30]아별 2009-08-25 10247
» 엑셀일반 [강좌] 셀안에 이미지 또는 도형 정렬하기 imagefile [4] [레벨:30]아별 2011-10-11 10932
1 엑셀일반 [강좌] 다중 조건 조회 및 중복 항목 제거하여 개수 구하기 imagefile [10] [레벨:30]아별 2009-10-10 15514