이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date |
2009/03/28 15:02:36 |
Name |
살찐개미 |
Subject |
으아~~~ MFC 엑셀 오토메이션 관련 질문 입니다. |
주말에 출근해서 붙잡고 있는데 해결이 안되니 퇴근도 못하네요. ㅠ.ㅠ.
어제 끝내고 갔어야하는데 내일 해야지 하고 출근해서 끝없는 삽질 중..
크게 질문은 2가지 입니다.
첫번째. 엑셀 특정셀에 색을 입히고 테두리를 그리는 것입니다.
셀에 색을 입히는건
RangePtr ColorRange; //<<-- 해당 셀의 위치를 저장하기 위한 객체
InteriorPtr ColorInterior; //<<-- 색상을 설정하기 위해 필요한 객체
CString strTmp;
strTmp.Format("%d",m_nDagakRow);
ColorRange = m_pSheet->GetRange(COleVariant("B"+strTmp), COleVariant("Y"+strTmp));
ColorInterior = ColorRange->GetInterior(); //-- 현재 지정하고 있는 위치의 Dispatch를 ColorInterior에 넘겨줌
ColorInterior->PutColor(COleVariant((DOUBLE)RGB(255,255,0))); //--Dispatch를 넘겨 받은 후 SetColor를 이용해 채움
요렇게 했는데 테두리 그리는건 도저히 안되네요.
테두리는 검색능력을 총 동원해서
CString IpDisp;
IpDisp.Format("%d",m_pSheet);
m_pSheet->GetRange(COleVariant("B"+strTmp), COleVariant("Y"+strTmp));
//m_pRange->AttachDispatch(IpDisp);
m_pRange->AttachDispatch(IpDisp);
borders = m_pRange->GetBorders();
BorderPtr bottomborder;
bottomborder = borders->PutValue((long)9);
bottomborder->PutLineStyle(COleVariant((short)0));
bottomborder->PutWeight(COleVariant((short)2));
이렇게 짰는데, 현재 사용하는툴이 비쥬얼스튜디오2008이라 함수자체 이름이 바뀌었나봅니다.
AttachDispatch 이 부분에서 Range 의 멤버가 아니라고 나오는데 바뀐 함수를 찾을 수 가 없네요.
2번째 질문은 생성된 엑셀 프로세스가 종료를 눌러도 계속 좀비프로세스로 남아서
컴파일이나 실행시 마다 프로세스를 강제종료해줘야하는 상황이 일어납니다.
그럼... 현재 출근해서 개발중이신 PGR횐님들이나 집에서 쉬고계신 PGR횐님들
도움 좀 부탁드립니다.
집에 가고싶어요.........................................................ㅠ
|
통합규정 1.3 이용안내 인용
"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
|