본문 바로가기
WORK/Sotfware

엑셀에서 특정 열의 타입을 지정해주는법

by KANG Stroy 2009. 8. 20.
728x90
728x90
장성호 [nasilso]

엑셀에 관련된 자료가 여기 많기는 한데..
님이 질문한 내용은 없는듯 하네요

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

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

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

특정 셀의 타입을 변경하는 방법을 메크로로 기록하니 아래와 같이 되더군요
      
  1. //------------------------------------------------------------  
  2. Sub Macro1()  
  3. '  
  4. ' Macro1 Macro  
  5. ' 장성호이(가) 2007-10-29에 기록한 매크로  
  6.  
  7.     Range("C5").Select 
  8.     ActiveCell.FormulaR1C1 = "123123123" 
  9.     Range("C5").Select 
  10.     Selection.NumberFormatLocal = "@" 
  11. End Sub 
  12. //------------------------------------------------------------  


위 메크로에서 이부분이 핵심입니다.
Selection.NumberFormatLocal = "@"

선택된 셀의 속성을 문자(Text)로 바꾸는 것이죠


아래에 샘플 코딩 해보았습니다.

  //---------------------------------------------------------------------------  
  1. void __fastcall TForm1::Button1Click(TObject *Sender)  
  2. {  
  3.     Variant excel_app;  
  4.     Variant excel_book;  
  5.     Variant excel_sheet;  
  6.     Variant cells;  
  7.  
  8.     String asFileName="C:\\Test.xls";  
  9.  
  10.     excel_app=Variant::CreateObject("excel.application");                   //Excel 프로그램 실행  
  11.     excel_app.OlePropertySet("Visible", (Variant)true);                     //Excel 프로그램 Visible설정  
  12.     excel_app.OlePropertyGet("WorkBooks").OleProcedure("Open",asFileName.c_str());  //문서 파일 열기  
  13.     excel_book=excel_app.OlePropertyGet("ActiveWorkbook");                  //현재 Active된 WorkBook 선택  
  14.     excel_sheet=excel_book.OlePropertyGet("ActiveSheet");                   // WorkBook에서 Acitve된 Sheet선택  
  15.  
  16.  
  17.     cells = excel_sheet.OlePropertyGet("Cells",2 , 2); //Cell선택           // Sheet에서 Cell  2,2 선택  
  18.  
  19.     String sSet="@";  
  20.     cells.OlePropertySet("NumberFormatLocal",WideString(sSet));  //선택한 Cell속성을 Text로 변경  
  21.  
  22.     String vValue="123123123123";  
  23.     cells.OlePropertySet("Value", WideString(vValue));          //선택한 Cell에 데이타 입력  
  24.  
  25.  
  26.     excel_book.OleProcedure("SaveAs",asFileName.c_str());       //저장  
  27.     excel_book.OleFunction("Close", (Variant)False);            //Excel 문서 닫기  
  28.     excel_sheet = Unassigned;  
  29.     excel_book = Unassigned;  
  30.     excel_app.OleFunction("Quit");                              //Excel 프로그램 종료  
  31.     excel_app = Unassigned;  
  32. }  
  33. //--------------------------------------------------------------------------- 

위 샘플은 특정 cell의 속성을 text로 설정했는데...

특정 행이나 열 또는 영역의 설정을  바꾸려면  선택하는 부분만 바꾸면 되겠죠
일일이 모든 cell을 반복해서 선택해 설정하는것은 노가다고..
그 방법도 메크로를 통해 확인하면 간단합니다.

그럼...


김정균 님이 쓰신 글 :
: 엑셀 OleObject를 사용하여 자료를 저장하고 있습니다.
: 근데 문제가 엑셀의 특정 열의 cell 타입을 text로 지정해주고 싶은데
: 방법을 모르겠습니다.
: OlePropertySet을 사용하면 될거 같은데 매개변수의 값을 어떻게 줘야할지
: 모르겠네요. 아시는분이 알려주시면 감사하겠습니다.
:
: ps. OlePropertySet에서 사용가능한 값들이 나와있는 웹페이지가 있으면
:       알려주세요.
728x90

'WORK > Sotfware' 카테고리의 다른 글

RS232 통신 프로그램 - 3  (0) 2009.08.24
IntToHex  (0) 2009.08.20
CRC(Cyclic Redundancy Check) 검사  (0) 2009.08.19
16비트 CRC 알고리즘 코드  (0) 2009.08.19
continue 문  (0) 2009.08.12

댓글