Help and Support

Calling Microsoft Excel Macro from FoxPro for Macintosh

Article ID:118779
Last Review:November 17, 2003
Revision:2.0
This article was previously published under Q118779

SUMMARY

When you are developing an application in FoxPro for Macintosh, you may sometimes need to tap into the functionality of another application. This article demonstrates how to execute a macro written in Microsoft Excel version 4.0 for Macintosh and return a result.

Back to the top

MORE INFORMATION

To run a Microsoft Excel macro, three components are necessary: the Microsoft Excel macro, the AppleScript script, and the FoxPro Command window.

To create a simple Microsoft Excel macro that fills in the first 50 cells of the first column of a worksheet, do the following:
1.In Microsoft Excel, open a new worksheet.
2.Open a new macro sheet.
3.Beginning in cell A1 of the macro sheet, enter the following commands:
      =FOR("counter",1,50)
      =FORMULA(counter)
      =SELECT(,"R[1]C")
      =NEXT()
      =SELECT(,"R[-1]C")
      =RETURN(CELL("contents"))
						
NOTE: The macro must return a value or the following error message will occurs:
      Microsoft Excel got an error:
      "RUN(\"FILLCOL!FILLCOL\")" doesn't
      understand the do script message.
4.Define the name FILLCOL for the macro. To define a name for a macro, select the first cell of the macro, in this case A1, and choose Define Name from the Formula menu. In the Define Name dialog box, type the name FILLCOL and select the Command option button at the bottom of the dialog box.
5.Save the macro sheet with the name FILLCOL.
To create the AppleScript, do the following:
1.Open the AppleScript Script Editor.
2.Enter the following code for the script:
      tell application "Macintosh HD:Excel:Microsoft Excel"
         make new document
         set retVal to Evaluate "RUN(\"FILLCOL!FILLCOL\")"
         return (retVal as string)
      end tell
3.Save the script with the name RunXLMacro and close it.
In the FoxPro Command window, execute the following commands:
   RUNSCRIPT RunXLMacro TO ret
   WAIT WINDOW ret
				
The macro is executed synchronously. This means that control is not returned to the user until after the macro has completed execution. If the FoxPro desktop and Command windows are not maximized, you should see the macro execute in the background, filling in the first fifty cells of a new worksheet with the numbers 1 through 50. If you can't see the macro executing, switch to Microsoft Excel once control returns to FoxPro and look at the new worksheet.

Back to the top

REFERENCES

Microsoft Excel "Function Reference"

Back to the top


APPLIES TO
Microsoft Visual FoxPro 3.0b for Macintosh
Microsoft FoxPro 2.5b for Macintosh
Microsoft Visual FoxPro 2.5c for Macintosh

Back to the top

Keywords: 
kbcode KB118779

Back to the top

Article Translations

 

Other Support Options

  • Contact Microsoft
    Phone Numbers, Support Options and Pricing, Online Help, and more.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.