ref: http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=51088
Excel은 너무 많은 기능이 있어서 그것을 익히기도 쉽지않은데..
프로그램으로 직접 제어하는 기능까지 다 알기는 어렵죠
하지만 어떠한 특이한 기능이라도 찾는 방법이 있으니 ..
그것은 메크로 라는 것입니다.
1. 엑셀을 실행하고
2. 도구 => 메크로 =>새 메크로 실행 한후..
3. 엑셀에서 원하는 기능을 수행하고.
4. 도구 => 메크로 => 메크로 정기 한후
5. 그 메크로의 내용을 그대로 코딩하면 됩니다.
특정 셀의 타입을 변경하는 방법을 메크로로 기록하니 아래와 같이 되더군요
//------------------------------------------------------------Range("C5").Select
Sub Macro1()
ActiveCell.FormulaR1C1 = "123123123"
Range("C5").Select
Selection.NumberFormatLocal = "@"
End Sub
//------------------------------------------------------------
위 메크로에서 이부분이 핵심입니다.
Selection.NumberFormatLocal = "@"
선택된 셀의 속성을 문자(Text)로 바꾸는 것이죠
아래에 샘플 코딩 해보았습니다.
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant excel_app;
Variant excel_book;
Variant excel_sheet;
Variant cells;
String asFileName="C:\\Test.xls";
excel_app=Variant::CreateObject("excel.application"); //Excel 프로그램 실행
excel_app.OlePropertySet("Visible", (Variant)true); //Excel 프로그램 Visible설정
excel_app.OlePropertyGet("WorkBooks").OleProcedure("Open",asFileName.c_str()); //문서 파일 열기
excel_book=excel_app.OlePropertyGet("ActiveWorkbook");//현재 Active된 WorkBook 선택
excel_sheet=excel_book.OlePropertyGet("ActiveSheet");// WorkBook에서 Acitve된 Sheet선택
cells = excel_sheet.OlePropertyGet("Cells",2 , 2); //Cell선택// Sheet에서 Cell 2,2 선택
String sSet="@";
cells.OlePropertySet("NumberFormatLocal",WideString(sSet));//선택한 Cell속성을 Text로 변경
String vValue="123123123123";
cells.OlePropertySet("Value", WideString(vValue)); //선택한 Cell에 데이타 입력
excel_book.OleProcedure("SaveAs",asFileName.c_str()); //저장
excel_book.OleFunction("Close", (Variant)False); //Excel 문서 닫기
excel_sheet = Unassigned;
excel_book = Unassigned;
excel_app.OleFunction("Quit"); //Excel 프로그램 종료
excel_app = Unassigned;
}
//---------------------------------------------------------------------------
위 샘플은 특정 cell의 속성을 text로 설정했는데...
특정 행이나 열 또는 영역의 설정을 바꾸려면 선택하는 부분만 바꾸면 되겠죠
일일이 모든 cell을 반복해서 선택해 설정하는것은 노가다고..
그 방법도 메크로를 통해 확인하면 간단합니다.
'Borland' 카테고리의 다른 글
Excel 설치 여부 확인 (0) | 2010.01.19 |
---|---|
Excel의 셀에 이미지 삽입 방법 (0) | 2010.01.19 |
Excel의 셀 범위를 ClipBoard로 Copy 하기 (0) | 2010.01.19 |
Excel의 Text ClipBoard format (0) | 2010.01.19 |
package 파일 linker error (0) | 2009.10.26 |