본문 바로가기
Borland

Excel에서 특정 열의 타입을 지정해주는 방법

by leo21c 2010. 1. 19.

ref: http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=51088

Excel은 너무 많은 기능이 있어서 그것을 익히기도 쉽지않은데..
프로그램으로 직접 제어하는 기능까지 다 알기는 어렵죠

하지만 어떠한 특이한 기능이라도 찾는 방법이 있으니 ..
그것은 메크로 라는 것입니다.

1. 엑셀을 실행하고
2. 도구 => 메크로 =>새 메크로 실행 한후..
3. 엑셀에서 원하는 기능을 수행하고.
4. 도구 => 메크로 => 메크로 정기 한후
5. 그 메크로의 내용을 그대로 코딩하면 됩니다.

특정 셀의 타입을 변경하는 방법을 메크로로 기록하니 아래와 같이 되더군요

Range("C5").Select
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