이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.
셀의 색깔을 조건에 따라 변화하게 하는법은 조건부 서식으로 해결을 했는데요
제가 추가한 예제 파일에 보면 아시겠지만. ㅠㅠ
시작버튼을 누르면 C11 cell이 1~2로 변화는 사이에 조건부서식부분은 노란색으로 변화는데..
시작이라고 되어있는 파란색 도형도 빨간색으로 변화게 하고싶습니다. 눌렀다는 표시를 주기위해서죠..
그런데 방법을 모르겠네요
역시 도형은 매크로를 이용해서 색깔을 바꿀수는 없는건가요??
방법이 있다면 알려주세요..ㅠㅠ
앗~ 그리고 제가 시간차를 주기위해서.. 이렇게 delay함수를 사용했는데요..
이것말고 이렇게 시간적차이를 줄수 있는방법이 또 있나요??
엑신님의 의견 듣고싶어 이렇게 글남깁니다.
댓글 '3'
매크로 기록기로 기록을 시작한 다음,
아무셀이나 선택하고 셀 색상을 채우세요.. 그러면 아래와 같은 코드가 생성될겁니다.
Sub Macro1() With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub |
위 코드에서 주황색으로된 부분이 셀 음영색입니다. 저 숫자를 이용해서 도형의 색상도 바꿀 수 있구요..
저 숫자는 RGB색상을 일련번호로 변환한것입니다.
저 값을 RGB로 나눠서 보고 싶다면 아래 수식을 이용하시면 됩니다.
Red =ROUNDDOWN(MOD($A1,POWER(2,8))/POWER(2,0),0)
Green =ROUNDDOWN(MOD($A1,POWER(2,16))/POWER(2,8),0)
Blue =ROUNDDOWN(MOD($A1,POWER(2,24))/POWER(2,16),0)
예제에서 설명한 색상값을 위의 변환식을 이용해서 RGB로 바꿔보면 아래와 같습니다.
.Color = 5296274
Red : 146 =ROUNDDOWN(MOD(5296274,POWER(2,8))/POWER(2,0),0)
Green : 208 =ROUNDDOWN(MOD(5296274,POWER(2,16))/POWER(2,8),0)
Blue : 80 =ROUNDDOWN(MOD(5296274,POWER(2,24))/POWER(2,16),0)
녹색이 가장 강하고 붉은색도 반이상 포함되었으니 노란색을 약간 띄는 밝은 녹색이 되겠지요.
재밌죠.. 엑셀.. ㅎㅎ
매크로 기록기에서는 도형의 변경이 기록되지 않아서 방법을 못 찾으신 것 같네요..
Visual Basic 편집기 창(Alt+F11)의 메뉴에서 보기 > 조사식 창을 선택해서 조사식창을 보이게 하구요..
조사식에 ActiveSheet.Shapes(1) 를 입력하시고 하위 속성들을 살펴보시면 쉽게 접근 방법을 찾으실 수 있습니다.
아래의 코드를 이용해보세요.
activesheet.shapes("모서리가 둥근 직사각형 1").fill.forecolor.rgb = 255
또는 activesheet.shapes(1).fill.forecolor.rgb = 255
도형의 색이 빨간색으로 바뀔겁니다. 255가 빨간색이죠.
그리고.. 엑셀을 대기상태로 놓는 것은,
보통은 application.wait을 많이 사용하고, 필요에 따라서 API를 이용한 sleep을 사용하기도 합니다.
아래 링크를 참고해보세요.
( http://www.excellove.com/ 에 접속해서 로그인한 다음에 아래 링크를 클릭하세요)
http://www.excellove.com/board/bbs/view.php?id=qa&no=64257&keyword=vba&sn=on&ss=on&sc=on
참고로 "Application.ontime now + 시간" 식으로현재 시간 이후 얼마 뒤에 실행되도록 하기도 합니다.
아래 링크를 참고하세요.
http://www.excellove.com/board/bbs/view.php?id=qa&no=64947&keyword=.ontime&sn=on&ss=on&sc=on