728x90
728x90
[nasilso]
엑셀에 관련된 자료가 여기 많기는 한데..
님이 질문한 내용은 없는듯 하네요
Excel은 너무 많은 기능이 있어서 그것을 익히기도 쉽지않은데..
프로그램으로 직접 제어하는 기능까지 다 알기는 어렵죠
하지만 어떠한 특이한 기능이라도 찾는 방법이 있으니 ..
그것은 메크로 라는 것입니다.
1. 엑셀을 실행하고
2. 도구 => 메크로 =>새 메크로 실행 한후..
3. 엑셀에서 원하는 기능을 수행하고.
4. 도구 => 메크로 => 메크로 정기 한후
5. 그 메크로의 내용을 그대로 코딩하면 됩니다.
특정 셀의 타입을 변경하는 방법을 메크로로 기록하니 아래와 같이 되더군요
위 메크로에서 이부분이 핵심입니다.
Selection.NumberFormatLocal = "@"
선택된 셀의 속성을 문자(Text)로 바꾸는 것이죠
아래에 샘플 코딩 해보았습니다.
위 샘플은 특정 cell의 속성을 text로 설정했는데...
특정 행이나 열 또는 영역의 설정을 바꾸려면 선택하는 부분만 바꾸면 되겠죠
일일이 모든 cell을 반복해서 선택해 설정하는것은 노가다고..
그 방법도 메크로를 통해 확인하면 간단합니다.
그럼...
김정균 님이 쓰신 글 :
: 엑셀 OleObject를 사용하여 자료를 저장하고 있습니다.
: 근데 문제가 엑셀의 특정 열의 cell 타입을 text로 지정해주고 싶은데
: 방법을 모르겠습니다.
: OlePropertySet을 사용하면 될거 같은데 매개변수의 값을 어떻게 줘야할지
: 모르겠네요. 아시는분이 알려주시면 감사하겠습니다.
:
: ps. OlePropertySet에서 사용가능한 값들이 나와있는 웹페이지가 있으면
: 알려주세요.
엑셀에 관련된 자료가 여기 많기는 한데..
님이 질문한 내용은 없는듯 하네요
Excel은 너무 많은 기능이 있어서 그것을 익히기도 쉽지않은데..
프로그램으로 직접 제어하는 기능까지 다 알기는 어렵죠
하지만 어떠한 특이한 기능이라도 찾는 방법이 있으니 ..
그것은 메크로 라는 것입니다.
1. 엑셀을 실행하고
2. 도구 => 메크로 =>새 메크로 실행 한후..
3. 엑셀에서 원하는 기능을 수행하고.
4. 도구 => 메크로 => 메크로 정기 한후
5. 그 메크로의 내용을 그대로 코딩하면 됩니다.
특정 셀의 타입을 변경하는 방법을 메크로로 기록하니 아래와 같이 되더군요
- //------------------------------------------------------------
- Sub Macro1()
- '
- ' Macro1 Macro
- ' 장성호이(가) 2007-10-29에 기록한 매크로
- Range("C5").Select
- ActiveCell.FormulaR1C1 = "123123123"
- Range("C5").Select
- Selection.NumberFormatLocal = "@"
- End Sub
- //------------------------------------------------------------
//------------------------------------------------------------ Sub Macro1() ' ' Macro1 Macro ' 장성호이(가) 2007-10-29에 기록한 매크로 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;
- }
- //---------------------------------------------------------------------------
//--------------------------------------------------------------------------- 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을 반복해서 선택해 설정하는것은 노가다고..
그 방법도 메크로를 통해 확인하면 간단합니다.
그럼...
김정균 님이 쓰신 글 :
: 엑셀 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 |
댓글