Q&A

  • 스트링그리드를 엑셀로??
안녕하세요

그런데 여기서 직접 글을 올린적은 별루 없었던것 같아요...
아무래도 검색해보니 잘 안나와서 이렇게 올립니다.
혹시라도 있을지도 모르겠지만
제가 못찾은건지 내용이 안보여서 이렇게 직접 글을 올립니다...

고수분들 좋은 답변 기대 하겠습니다 ^^

우선 제가 알고 싶은 것은요...
스트링 그리드에 있는 데이타를
엑셀로 옮길수 있는 방법은 없을까 하는것입니다.
물론 그 방법이 있다는 것은 압니다.
알구말구요.. 분명히 봤습니다.
그런데 그걸 못찾겠습니다..
아니 모르겠다는게 더 맞는것 같습니다...

그리드에 내용은요
엑셀에 있는 내용을 불러서 그리드에 뿌렸구요
그리드에 뿌린걸 또 추려서 계산해서
또 다른 그리드에 뿌립니다.
결과적으로 그리드에 뿌려진 내용을
엑셀로 다시 출력하는것이 목적입니다.
그러나 마지막 단계인
엑셀로 출력하는 부분에서
제가 전혀 모르겠습니다.
음... 어떻게 보면
엑셀에서 불러냈으니 엑셀로 보내는것도 쉽지 않겠냐구 하시겠지만
사실 엑셀에서 불러내는것도 제가 직접 짠게 아니라
다른분이 짠거 써보니 되던겁니다..;;
소스 완전 이해 안됩니다.. 그래서 그걸 거꾸로 하는게 힘든겁니다...

그리고 단순히 그냥 바둑판으로 된 그리드를 옮기려는것도 아닙니다.
엑셀로 옮기면서... 셀 합치기도 필요합니다..
제목줄이라거나
그런부분은
아무래도 셀이 합쳐저야 하지 않을까요?
마니마니 고차원적인 내용같습니다.. 제 수준에서는 말이죠...
다른분들께서는 어떻게 생각 하실지 모르겠지만..
답변 하시는데 어려움이 없으시다면
도움 부탁드립니다.........


ㅋ.... 어렵네용.... ㅠㅠ
3  COMMENTS
  • Profile
    Marek 2006.12.06 18:49
    안녕하세요.

    질문을 너무 길게 하시면 모두들 난감해합니다. ^_^
    Excel코딩을 할때에는 일단 Excel을 열고 새매크로 기록(도구메뉴)를 실행하여
    셀에 원하시는 외곽선 만들고 매크로 기록종료후 만들어진 VB코드를 분석하여
    델파이로 코딩 하시면 의외로 쉽게 하실수 있습니다.
    셀 합치기 역시 새매크로 기록 -> 셀병합 -> 매크로 기록중지 -> 매크로편집
    으로 하면 아래 VB코드를 볼수 있습니다.

        Range("B5:C5").Select  ----------> 병합하려는 셀 구간
        With Selection
            .HorizontalAlignment = xlGeneral
            .VerticalAlignment = xlCenter
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = True   -----------> 이줄이 병합하는 VB코드임.
        End With

    이렇게 하시면 Delphi로 쉽게 변환할 수 있습니다.
    테두리를 넣는 것도 위와 같은 방법으로 VB코드를 참조후
    델파이 코드로 전환할 수 있습니다.

    Marek...


  • Profile
    허브티 2006.12.08 02:32
    아.. 안녕하세요
    대답이 한동안 없어서.. 포기하고 있었는데 답해 주셨네요
    marek 님 감사합니다 ^^

    저 그런데 님께서 답변해주신글..
    한 30프로 이해한것 같아요 ㅡㅜ;;;;
    엑셀 여는건 이해하겠는데
    매크로 기록하고 VB코드는 먼가요?
    사실 코딩 용어같은것도 잘 몰라서요..
    ㅠㅠ
    혹시 매크로 기록이 그리드 내용을 엑셀로 넣기를 반복 수행하는것을 말하는건가요?
    흠흠.... 다시한번 제 머리를 시험하시는군요 ㅋ...

    우선 '엑셀'로 검색해서 나오는 게시글들 위주로 열심히 참조하고 있는데요
    역시 marek님 글과 다른글들 다 함께
    섞어섞어 또 연구해봐야겠네요. ㅠㅠ
    감사합니다... ㅅ_ㅅ)/


  • Profile
    Marek 2006.12.11 18:22
    Marek입니다.
    MSOffice는 모든 동작을 코드화 할수 있도록 VB Code를 제공하는데
    그 VB Code를 알아내려면 매크로를 이용해서 Code조회를 할수 있습니다.
    따라서 매크로의 일반기능인 표준작업의 반복을 위한것이 아니라 우리는 코드를
    조회하기 위해 매크로를 사용하는 것입니다. 델파이로 변환하기 위합이죠.

    간단히 순서대로 한번 해보기로 하죠..

    1. Excel을 열고 상단메뉴에서 도구->매크로->새매크로기록을 클릭하세요
    2. 매크로 이름은 그대로 놓고 확인을 누르시면 지금부터 매크로를 기록하는 것입니다.
    3. B2 셀에서 입력합니다. 예) 123
    4. 도구->매크로->기록중지를 클릭하면 지금까지 입력한 매크로가 저장됩니다.
    --이제 코드를 볼 차례입니다.--
    5. 도구->매크로->매크로->편집을 선택하면 아래 VB코드가 보입니다.

        Sub Macro1()
    '
    ' Macro1 Macro
    ' marek이(가) 2006-12-11에 기록한 매크로
        Range("B2").Select
        ActiveCell.FormulaR1C1 = "123"
        Range("B3").Select
    End Sub

    선을 그리는 것도 위와 같이 하시면 VB Code가 생성되므로 이것을 델파이로
    변환하셔야 합니다.  변환에는 자동화툴이 없으므로 직접 코딩하셔야 합니다.

    VB 코드에서 단계별실행(F8)을 하면서 마우스를 해당변수에 올려 놓으면
    각 코드라인별 내부값을 참조할수 있습니다.
    Delphi처럼 말이죠.

    이상입니다.    Marek...