MFC 자동화할 Excel 2000과 Excel 2002 및 Excel 2000과 Excel 2002 범위에서 배열을 구하는 방법을

기술 자료 번역 기술 자료 번역
기술 자료: 186122 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 Microsoft Excel을 자동화하고 배열로 여러 셀 범위의 값을 반환하는 방법을 보여 줍니다.

추가 정보

-한 - 셀 쿼리하지 않고 여러 셀 범위의 값을 반환할 수 VARIANT 값을 반환하려면 Range 개체의 GetValue 멤버 함수를 사용해야 합니다. 다음 GetValue에서 반환된 VARIANT 기반으로 SAFEARRAY를 구성할 수 있습니다. SAFEARRAY 일단 GetElement 사용하여 요소를 액세스할 수 있습니다. 다음 단계는 이 프로세스를 설명하기 및 문자열 및 숫자 요소의 액세스하는 방법을 보여 줍니다.

Microsoft Excel 2000 및 2002 자동화 노트

이 문서의 예제 코드는 Excel 97 개체 라이브러리 (Excel 8.olb) 에서 생성된 클래스 래퍼를 사용합니다. 약간의 수정이 이 코드 (Excel9.olb) Excel 2000 또는 Excel 2002 (Excel.olb) 클래스 래퍼를 사용하는 자동화 클라이언트를 적용할 수 있습니다. Microsoft Excel 2000 또는 2002 형식 라이브러리를 사용하여 이 문서에서 설명하는 예제 코드를 사용하는 방법에 대한 자세한 내용은 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
224925새 릴리스 정보: Office 형식 라이브러리 변경될 수 있다

프로젝트를 만드는 단계

  1. Microsoft Excel에서 새 통합 문서를 만듭니다. A1:C8 문자열 및 숫자 데이터가 혼합되어 있는 셀을 채웁니다. "c:\test.xls" 으로 통합 문서를 저장하고 Microsoft Excel을 종료하십시오.
  2. 1-12단계 사용하는 경우 IDispatch 인터페이스 및 멤버 함수를 Excel8.olb 형식 라이브러리에 정의된 예제 프로젝트를 만들려면 Microsoft 기술 자료의 다음 문서에서 다음과 같이 하십시오.
    178749MFC 및 형식 라이브러리를 사용하여 자동화 프로젝트를 만드는 방법
  3. AutoProjectDlg.cpp 파일 맨 위에 다음 줄을 추가합니다:
          #include "excel8.h"
    					
  4. CAutoProjectDlg::OnRun() AutoProjectDlg.cpp 파일에 다음 코드를 추가하십시오.

    예제 코드

          // OLE Variant for Optional.
          COleVariant VOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
    
          _Application objApp;
          _Workbook objBook;
          Workbooks objBooks;
          Worksheets objSheets;
          _Worksheet objSheet;
          Range objRange;
          VARIANT ret;
    
          // Instantiate Excel and open an existing workbook.
          objApp.CreateDispatch("Excel.Application");
          objBooks = objApp.GetWorkbooks();
          objBook = objBooks.Open("C:\\Test.xls",
                    VOptional, VOptional, VOptional, VOptional,
                    VOptional, VOptional, VOptional, VOptional,
                    VOptional, VOptional, VOptional, VOptional);
          objSheets = objBook.GetWorksheets();
          objSheet = objSheets.GetItem(COleVariant((short)1));
    
          //Get the range object for which you wish to retrieve the
          //data and then retrieve the data (as a variant array, ret).
          objRange = objSheet.GetRange(COleVariant("A1"), COleVariant("C8"));
          ret = objRange.GetValue();
    
          //Create the SAFEARRAY from the VARIANT ret.
          COleSafeArray sa(ret);
    
          //Determine the array's dimensions.
          long lNumRows;
          long lNumCols;
          sa.GetUBound(1, &lNumRows);
          sa.GetUBound(2, &lNumCols);
    
          //Display the elements in the SAFEARRAY.
          long index[2];
          VARIANT val;
          int r, c;
          TRACE("Contents of SafeArray\n");
          TRACE("=====================\n\t");
          for(c=1;c<=lNumCols;c++)
          {
             TRACE("\t\tCol %d", c);
          }
          TRACE("\n");
          for(r=1;r<=lNumRows;r++)
          {
             TRACE("Row %d", r);
             for(c=1;c<=lNumCols;c++)
             {
                index[0]=r;
                index[1]=c;
                sa.GetElement(index, &val);
                switch(val.vt)
                {
                case VT_R8:
                   {
                      TRACE("\t\t%1.2f", val.dblVal);
                      break;
                   }
                case VT_BSTR:
                   {
                      TRACE("\t\t%s",(CString)val.bstrVal);
                      break;
                   }
    
                case VT_EMPTY:
                   {
                      TRACE("\t\t<empty>");
                      break;
                   }
                }
             }
             TRACE("\n");
          }
    
          //Close the workbook without saving changes
          //and quit Microsoft Excel.
          objBook.Close(COleVariant((short)FALSE), VOptional, VOptional);
          objApp.Quit();
    					
  5. 프로젝트를 컴파일하고 이를 실행하십시오.
  6. 실행을 클릭하십시오. 셀 A1:C8 값은 출력 창에 표시됩니다.

참조

MFC를 사용하여 Microsoft Excel 자동화에 대한 자세한 내용은 Microsoft 기술 자료 문서를 보려면 문서 번호를 아래 누르십시오.
186120MFC 배열 범위 채우기 및 Excel을 자동화하는 방법
184663포함 및 MFC 사용하여 Microsoft Excel 워크시트 자동화하는 방법
179706MFC를 사용하여 새 통합 문서 만들기 서식 및 Excel을 자동화하는 방법
178781HOWTO: MFC 및 워크시트 함수를 사용하여 Excel을 자동화합니다
178783HOWTO: MFC를 사용하여 Microsoft Excel 차트 만들기
167668SafeArray는 문자열 있는 VARIANT 1 에서 전달 방법

속성

기술 자료: 186122 - 마지막 검토: 2007년 1월 23일 화요일 - 수정: 5.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
키워드:?
kbmt kbprogramming kbfunctions kbautomation kbhowto kbinterop KB186122 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com