Our next example of a macro function makes use of the CXllFinder class.
Note: the full code for this example can be found in the project FindReplace in the Samples sub-directory.
Create a new function FindReplace() as shown below.

Amend the generated code as shown below, and build the project.
//{{XLP_SRC(FindReplace)
// NOTE - the FunctionWizard will add and remove mapping code here.
// DO NOT EDIT what you see in these blocks of generated code!
IMPLEMENT_XLLFN2(FindReplace, "A", "FindReplace", "", "User Defin"
"ed", "Demonstrate find/replace", "", "", 2)
extern "C" __declspec( dllexport )
BOOL FindReplace()
{
//}}XLP_SRC
const char* apszPairs[] = {
"Fred", "Freda",
"George", "Georgina",
0
};
// Iterate through each find/replace task
for (int i = 0; apszPairs[i]; i += 2) {
// Create a finder
CXllFinder finder(apszPairs[i], FALSE, TRUE);
// Alternatively - create a finder for a specific sheet
//CXllFinder finder(apszPairs[i], FALSE, TRUE, "FindReplace.xls", "Sheet2");
// Look for each match
CXlRef xlrFind;
while (finder.FindNext(xlrFind)) {
// Inspect the current value
CXlOper xloValue;
finder.GetCurrentValue(xloValue);
TRACE("%s\n", (LPCSTR)xloValue.ToString());
// Change the value in the matched cell
finder.SetCurrentValue(apszPairs[i + 1]);
}
}
return 0;
}
Build the project, and start Excel.
Type the values "George" and "Fred" into several cells.
Using the Alt-F8 key (or with one of the other methods described in the last topic), run the FindReplace macro. Note that each of the Georges and Freds turn to their feminine equivalents.