シート内の検索
//Excelを操作するためのタイプライブラリを読みこむ(Excel2002用)
#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" no_namespace rename("DocumentProperties", "DocumentPropertiesXL")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace
#import "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
アクティブシート内に記述されているデータを検索する方法を示します。
void CXls_imp_findDlg::OnButton1()
{
using namespace Excel;
_ApplicationPtr pXL;
//Excelの起動
pXL.CreateInstance(L"Excel.Application");
pXL->Visible = TRUE;
//WorkBookを追加する
WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbookPtr pBook = pBooks->Add((long)xlWorksheet);
//アクティブ・シートを取得
_WorksheetPtr pSheet = pXL->ActiveSheet;
//Cellsを使用したデータの出力
RangePtr pCells = pSheet->Cells->Item[COleVariant((short)100)][COleVariant((short)100)];
pCells->Value2 = COleVariant("TEST");
//アクティブシート内の文字列を検索
RangePtr pRangeCells = pXL->Cells;
RangePtr pFndRange = pRangeCells->Find(COleVariant("TEST"), vtMissing,
vtMissing, vtMissing, vtMissing, xlNext, vtMissing,vtMissing,vtMissing);
//検索対象文字列を含むセルをアクティブにする
pFndRange->Activate();
AfxMessageBox("動作確認のために一時停止");
pXL->DisplayAlerts = FALSE;
pXL->Quit();
}